Функция RemoveFontResourceExW (wingdi.h)

Функция RemoveFontResourceEx удаляет шрифты из указанного файла из системной таблицы шрифтов.

Синтаксис

BOOL RemoveFontResourceExW(
  [in] LPCWSTR name,
  [in] DWORD   fl,
  [in] PVOID   pdv
);

Параметры

[in] name

Указатель на строку с пустым завершением, которая называет файл ресурсов шрифта.

[in] fl

Характеристики шрифта, удаляемого из системы. Для удаления шрифта используемые флаги должны совпадать с тем, что и при добавлении шрифта с помощью функции AddFontResourceEx . Дополнительные сведения см. в разделе Функция AddFontResourceEx .

[in] pdv

Зарезервировано. Должен равняться нулю.

Возвращаемое значение

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке недоступны.

Комментарии

Эта функция удаляет шрифт только в том случае, если указанные флаги совпадают с тем, когда шрифт был добавлен с помощью функции AddFontResourceEx .

При попытке заменить существующий файл шрифта, содержащий шрифт, на неосуществимые ссылки на него, может возникнуть ошибка, указывающая, что исходный шрифт невозможно удалить, так как он используется даже после вызова RemoveFontResourceEx. Если приложение требует замены файла шрифта, чтобы уменьшить количество ресурсов исходного шрифта до нуля, вызовите Метод RemoveFontResourceEx в цикле, как показано в этом примере кода. Если вы продолжаете получать ошибки, это означает, что файл шрифта остается загруженным в других сеансах. Убедитесь, что шрифт отсутствует в реестре шрифтов, и перезапустите систему, чтобы убедиться, что шрифт выгружается из всех сеансов.

Примечание Приложения, в которых используется исходный файл шрифта, по-прежнему смогут получить доступ к исходному файлу и не будут использовать новый шрифт, пока шрифт не перезагрузится. Вызовите Метод AddFontResourceEx , чтобы перезагрузить шрифт. Рекомендуется вызывать AddFontResourceEx столько же раз, сколько и при успешном вызове RemoveFontResourceEx , как показано в этом примере кода.
 

int i = 0;
while( RemoveFontResourceEx( FontFile, FR_PRIVATE, 0 ) )
{
    i++;
}

// TODO: Replace font file

while( i-- )
{
    AddFontResourceEx( FontFile, FR_PRIVATE, 0 );
}

Примечание

Заголовок wingdi.h определяет RemoveFontResourceEx как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h (включая Windows.h)
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел

AddFontResourceEx

Функции шрифта и текста

Общие сведения о шрифтах и тексте

SendMessage