Partager via


Fonction DrvLoadFontFile (winddi.h)

La fonction DrvLoadFontFile reçoit des informations de GDI relatives au chargement et au mappage des fichiers de police.

Syntaxe

ULONG_PTR DrvLoadFontFile(
  ULONG        cFiles,
  ULONG_PTR    *piFile,
  PVOID        *ppvView,
  ULONG        *pcjView,
  DESIGNVECTOR *pdv,
  ULONG        ulLangID,
  ULONG        ulFastCheckSum
);

Paramètres

cFiles

Valeur fournie par l’appelant indiquant le nombre de fichiers associés à la police.

piFile

Pointeur fourni par l’appelant vers un tableau de handles de fichiers de taille cFiles. Chaque handle représente l’un des fichiers associés à la police. Les handles de fichier peuvent être transmis individuellement à EngMapFontFileFD.

ppvView

Pointeur fourni par l’appelant vers un tableau de taille cFiles contenant l’adresse de départ de l’espace mémoire dans lequel chaque fichier de police a été mappé.

pcjView

Pointeur fourni par l’appelant vers un tableau de taille cFiles contenant la taille de l’espace mémoire dans lequel chaque fichier de police a été mappé.

pdv

Pour les polices Adobe Multiple Master, il s’agit d’un pointeur fourni par l’appelant vers une structure DESIGNVECTOR (décrite dans la documentation Microsoft Windows SDK) qui identifie les instance multiples maîtres. Sinon, ce paramètre a la valeur NULL.

ulLangID

Identificateur de langue fourni par l’appelant, obtenu à partir du Registre.

ulFastCheckSum

Spécifie une somme de contrôle fournie par GDI pour la police. Si ce paramètre est différent de zéro, le moteur de cache de police GDI peut être utilisé afin d’accéder à une police plus rapidement. Si ce paramètre est égal à zéro, le moteur de police GDI ne peut pas être utilisé.

Valeur retournée

Si l’opération réussit, elle doit retourner un pointeur vers une valeur définie par le pilote qui identifie de manière unique la police. Le pilote reçoit ensuite ce pointeur en tant que paramètre d’entrée vers des fonctions telles que DrvQueryFont, DrvQueryFontFile, DrvQueryFontTree. Si une erreur est rencontrée, la fonction doit retourner HFF_INVALID.

Remarques

Les pilotes de police sont nécessaires pour fournir une fonction DrvLoadFontFile . L’objectif de la fonction est de permettre à un pilote de police de recevoir une notification indiquant que les fichiers associés d’une police sont chargés et mappés. Le pilote peut stocker des arguments d’entrée pour une utilisation ultérieure.

Le chargement et le mappage d’un fichier de police implique d’appeler EngMapFontFileFD. Lorsqu’une application appelle AddFontResource ou AddFontResourceEx (décrit dans la documentation SDK Windows), GDI appelle EngMapFontFileFD, puis appelle DrvLoadFontFile. Les paramètres ppvView et pcjView de la fonction DrvLoadFontFile fournissent l’emplacement et la taille du mappage de chaque fichier, comme retourné par EngMapFontFileFD.

GDI annule le mappage des fichiers lorsque DrvLoadFontFile retourne. Si le pilote doit remapper les fichiers ultérieurement, en réponse aux appels suivants de GDI, il peut appeler EngMapFontFileFD lui-même s’il a enregistré les paramètres cFiles et piFile .

Lorsque le moteur de police GDI appelle le DDI DrvLoadFontFile du pilote de police, il transmet une somme de contrôle pour la police dans le paramètre ulFastCheckSum . Si ce paramètre n’est pas nul et que la police en question a été mise en cache, DrvLoadFontFile peut obtenir un pointeur vers les données de police avec un appel à EngFntCacheLookUp. Une fois que le pilote de police a obtenu le pointeur vers les données de police, il peut charger les données de police. Si la police n’a pas été mise en cache, le pilote de police peut mettre en cache la police en allouant d’abord la mémoire pour le cache de polices, en utilisant un appel à EngFntCacheAlloc, puis en écrivant les données de police dans cette mémoire. Si le pilote de police rencontre une erreur lors de la lecture ou de l’écriture des données de police, il peut notifier le moteur de police GDI en effectuant un appel à EngFntCacheFault.

Si le moteur de police GDI appelé DrvLoadFontFile a passé une valeur de zéro pour le paramètre ulFastCheckSum , cela signifie que le moteur de police GDI n’est pas en fonctionnement et que le pilote de police n’a pas besoin d’effectuer une action.

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête winddi.h (inclure Winddi.h)

Voir aussi

DrvUnloadFontFile

EngFntCacheAlloc

EngFntCacheFault

EngFntCacheLookUp