RemoveFontResourceA, fonction (wingdi.h)
La fonction RemoveFontResource supprime les polices dans le fichier spécifié de la table de polices système.
Si la police a été ajoutée à l’aide de la fonction AddFontResourceEx
Syntaxe
BOOL RemoveFontResourceA(
[in] LPCSTR lpFileName
);
Paramètres
[in] lpFileName
Pointeur vers une chaîne terminée par null qui nomme un fichier de ressources de police.
Valeur de retour
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro.
Remarques
Nous vous recommandons d’ajouter ou de supprimer des polices de la table de polices système qu’elle notifie d’autres fenêtres de la modification en envoyant un message WM_FONTCHANGE à toutes les fenêtres de niveau supérieur du système. L’application envoie ce message en appelant la fonction
S’il existe des références en attente à une police, la ressource associée reste chargée jusqu’à ce qu’aucun contexte d’appareil ne l’utilise. De plus, si la police est répertoriée dans le registre de polices (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts) et qu’elle est installée à n’importe quel emplacement autre que le dossier %windir%\fonts\, elle peut être chargée dans d’autres sessions actives (y compris la session 0).
Lorsque vous essayez de remplacer un fichier de police existant qui contient une police avec des références en attente, vous pouvez obtenir une erreur indiquant que la police d’origine ne peut pas être supprimée, car elle est en cours d’utilisation même après avoir appelé RemoveFontResource. Si votre application exige que le fichier de police soit remplacé, pour réduire le nombre de ressources de la police d’origine à zéro, appelez RemoveFontResource dans une boucle, comme illustré dans cet exemple de code. Si vous continuez à obtenir des erreurs, il s’agit d’une indication que le fichier de police reste chargé dans d’autres sessions. Vérifiez que la police n’est pas répertoriée dans le Registre de polices et redémarrez le système pour vous assurer que la police est déchargée de toutes les sessions.
int i = 0;
while( RemoveFontResource( FontFile ) )
{
i++;
}
// TODO: Replace font file
while( i-- )
{
AddFontResource( FontFile );
}
Note
L’en-tête wingdi.h définit RemoveFontResource comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | wingdi.h (include Windows.h) |
bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |
Voir aussi
fonctions de police et de texte