Compartilhar via


Função RemoveFontResourceW (wingdi.h)

A função RemoveFontResource remove as fontes no arquivo especificado da tabela de fontes do sistema.

Se a fonte tiver sido adicionada usando a função AddFontResourceEx , você deverá usar a função RemoveFontResourceEx .

Sintaxe

BOOL RemoveFontResourceW(
  [in] LPCWSTR lpFileName
);

Parâmetros

[in] lpFileName

Um ponteiro para uma cadeia de caracteres terminada em nulo que nomeia um arquivo de recurso de fonte.

Valor retornado

Se a função for bem-sucedida, o valor retornado será diferente de zero.

Se a função falhar, o valor retornado será zero.

Comentários

Recomendamos que, se um aplicativo adicionar ou remover fontes da tabela de fontes do sistema, ele notifique outras janelas da alteração enviando uma mensagem de WM_FONTCHANGE para todas as janelas de nível superior no sistema. O aplicativo envia essa mensagem chamando a função SendMessage com o parâmetro hwnd definido como HWND_BROADCAST.

Se houver referências pendentes a uma fonte, o recurso associado permanecerá carregado até que nenhum contexto de dispositivo o esteja usando. Além disso, se a fonte estiver listada no registro de fontes (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) e estiver instalada em qualquer local diferente da pasta %windir%\fonts\, ela poderá ser carregada em outras sessões ativas (incluindo a sessão 0).

Ao tentar substituir um arquivo de fonte existente que contém uma fonte por referências pendentes a ele, você pode receber um erro que indica que a fonte original não pode ser excluída porque está em uso mesmo depois de chamar RemoveFontResource. Se o aplicativo exigir que o arquivo de fonte seja substituído, para reduzir a contagem de recursos da fonte original para zero, chame RemoveFontResource em um loop, conforme mostrado neste código de exemplo. Se você continuar recebendo erros, isso é uma indicação de que o arquivo de fonte permanece carregado em outras sessões. Verifique se a fonte não está listada no registro de fontes e reinicie o sistema para garantir que a fonte seja descarregada de todas as sessões.

Nota Os aplicativos em que o arquivo de fonte original está em uso ainda poderão acessar o arquivo original e não usarão a nova fonte até que a fonte seja recarregada. Chame AddFontResource para recarregar a fonte. Recomendamos que você chame AddFontResource o mesmo número de vezes que a chamada para RemoveFontResource foi bem-sucedida, conforme mostrado neste código de exemplo.
 

int i = 0;
while( RemoveFontResource( FontFile ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResource( FontFile );
}

Observação

O cabeçalho wingdi.h define RemoveFontResource como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wingdi.h (inclua Windows.h)
Biblioteca Gdi32.lib
DLL Gdi32.dll

Confira também

Addfontresource

Funções de fonte e texto

Visão geral de fontes e texto

RemoveFontResourceEx

SendMessage