RemoveFontResourceW-Funktion (wingdi.h)

Die RemoveFontResource-Funktion entfernt die Schriftarten in der angegebenen Datei aus der Systemschriftarttabelle.

Wenn die Schriftart mithilfe der Funktion AddFontResourceEx hinzugefügt wurde, müssen Sie die RemoveFontResourceEx-Funktion verwenden.

Syntax

BOOL RemoveFontResourceW(
  [in] LPCWSTR lpFileName
);

Parameter

[in] lpFileName

Ein Zeiger auf eine NULL-Zeichenfolge, die eine Schriftartressourcendatei benennt.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null.

Hinweise

Es wird empfohlen, wenn eine App Schriftarten aus der Systemschriftarttabelle hinzufügt oder entfernt, andere Fenster über die Änderung zu benachrichtigen, indem sie eine WM_FONTCHANGE Nachricht an alle Fenster der obersten Ebene im System sendet. Die App sendet diese Nachricht, indem sie die SendMessage-Funktion aufruft, wobei der hwnd-Parameter auf HWND_BROADCAST festgelegt ist.

Wenn ausstehende Verweise auf eine Schriftart vorhanden sind, bleibt die zugeordnete Ressource geladen, bis sie von keinem Gerätekontext verwendet wird. Wenn die Schriftart in der Schriftartenregistrierung (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) aufgeführt und an einem anderen Speicherort als dem Ordner %windir%\fonts\ installiert wird, kann sie in andere aktive Sitzungen (einschließlich Sitzung 0) geladen werden.

Wenn Sie versuchen, eine vorhandene Schriftartdatei, die eine Schriftart enthält, durch ausstehende Verweise darauf zu ersetzen, wird möglicherweise ein Fehler angezeigt, der darauf hinweist, dass die ursprüngliche Schriftart nicht gelöscht werden kann, da sie auch nach dem Aufrufen von RemoveFontResource verwendet wird. Wenn Ihre App erfordert, dass die Schriftartdatei ersetzt wird, rufen Sie RemoveFontResource in einer Schleife auf, um die Ressourcenanzahl der ursprünglichen Schriftart auf Null zu reduzieren, wie in diesem Beispielcode gezeigt. Wenn weiterhin Fehler auftreten, ist dies ein Hinweis darauf, dass die Schriftartdatei in anderen Sitzungen geladen bleibt. Stellen Sie sicher, dass die Schriftart nicht in der Schriftartenregistrierung aufgeführt ist, und starten Sie das System neu, um sicherzustellen, dass die Schriftart aus allen Sitzungen entladen wird.

Hinweis Apps, in denen die ursprüngliche Schriftartdatei verwendet wird, können weiterhin auf die ursprüngliche Datei zugreifen und die neue Schriftart erst verwenden, wenn die Schriftart erneut geladen wird. Rufen Sie AddFontResource auf, um die Schriftart neu zu laden. Es wird empfohlen, AddFontResource so oft aufzurufen, wie der Aufruf von RemoveFontResource erfolgreich war, wie in diesem Beispielcode gezeigt.
 

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

// TODO: Replace font file

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

Hinweis

Der wingdi.h-Header definiert RemoveFontResource als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit nicht codierungsneutralem Code kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wingdi.h (einschließlich Windows.h)
Bibliothek Gdi32.lib
DLL Gdi32.dll

Weitere Informationen

AddFontResource

Schriftart- und Textfunktionen

Übersicht über Schriftarten und Text

RemoveFontResourceEx

SendMessage