Функция RemoveFontResourceW (wingdi.h)
Функция RemoveFontResource удаляет шрифты в указанном файле из системной таблицы шрифтов.
Если шрифт был добавлен с помощью функции AddFontResourceEx
Синтаксис
BOOL RemoveFontResourceW(
[in] LPCWSTR lpFileName
);
Параметры
[in] lpFileName
Указатель на строку, завершающую значение NULL, которая называет файл ресурса шрифта.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение ненулевое.
Если функция завершается ошибкой, возвращаемое значение равно нулю.
Замечания
Рекомендуется, если приложение добавляет или удаляет шрифты из системной таблицы шрифтов, уведомляя другие окна об изменении, отправив WM_FONTCHANGE сообщение всем окнам верхнего уровня в системе. Приложение отправляет это сообщение, вызвав функцию SendMessage с параметром hwnd для HWND_BROADCAST.
Если есть невыполненные ссылки на шрифт, связанный ресурс остается загруженным до тех пор, пока не используется контекст устройства. Кроме того, если шрифт указан в реестре шрифтов (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) и устанавливается в любое расположение, отличное от папки %windir%\fonts\, он может быть загружен в другие активные сеансы (включая сеанс 0).
При попытке заменить существующий файл шрифта, содержащий шрифт с выдающимися ссылками на него, может появиться сообщение об ошибке, указывающее, что исходный шрифт нельзя удалить, так как он используется даже после вызова RemoveFontResource. Если приложению требуется заменить файл шрифта, чтобы уменьшить количество ресурсов исходного шрифта до нуля, вызовите RemoveFontResource в цикле, как показано в этом примере кода. Если вы продолжаете получать ошибки, это означает, что файл шрифта остается загруженным в других сеансах. Убедитесь, что шрифт не указан в реестре шрифтов и перезапустите систему, чтобы убедиться, что шрифт выгружается из всех сеансов.
int i = 0;
while( RemoveFontResource( FontFile ) )
{
i++;
}
// TODO: Replace font file
while( i-- )
{
AddFontResource( FontFile );
}
Заметка
Заголовок wingdi.h определяет RemoveFontResource как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wingdi.h (включая Windows.h) |
библиотеки |
Gdi32.lib |
DLL | Gdi32.dll |
См. также
шрифтов и текста