Partager via


Fonction DrvQueryFontData (winddi.h)

La fonction DrvQueryFontData récupère des informations sur une police réalisée.

Syntaxe

LONG DrvQueryFontData(
        DHPDEV    dhpdev,
        FONTOBJ   *pfo,
        ULONG     iMode,
        HGLYPH    hg,
        GLYPHDATA *pgd,
  [out] PVOID     pv,
        ULONG     cjSize
);

Paramètres

dhpdev

Gérez le PDEV de l’appareil physique qui a été retourné à partir d’un appel antérieur à DrvEnablePDEV.

pfo

Pointeur vers une structure FONTOBJ qui définit la réalisation de la police.

iMode

Spécifie le type d’informations demandées. Ce paramètre peut être l’une des valeurs suivantes :

Valeur Signification
QFD_GLYPHANDBITMAP Si pgd n’est pas NULL, le pilote doit remplir la structure GLYPHDATA avec les métriques du glyphe spécifié par hg.

Si pv n’est pas NULL, une structure GLYPHBITS doit être écrite à cette adresse. Le pilote doit copier la bitmap de glyphe correspondant au glyphe spécifié par hg dans cette structure. La taille de la structure est spécifiée par cjSize.

Si les bitmaps de glyphes ne sont pas prises en charge par le pilote, cette fonction est appelée uniquement avec pv défini sur NULL.

Si le pilote prend en charge les bitmaps de glyphes, la valeur de retour est la taille, en octets, de la bitmap de glyphe. Sinon, il est égal à zéro.

Ce mode doit être pris en charge.

QFD_GLYPHANDOUTLINE Si pgd n’est pas NULL, le pilote doit remplir la structure GLYPHDATA avec les métriques du glyphe spécifié par hg.

Si pv n’est pas NULL, une structure PATHOBJ doit être écrite à cette adresse. Le pilote transmet ce PATHOBJ aux services PATHOBJ_Xxx pour créer le plan du glyphe spécifié par hg. Le paramètre cjSize doit être ignoré.

La valeur de retour est zéro si la fonction réussit. Sinon, c’est FD_ERROR.

Seuls les pilotes de police qui fournissent des contours de glyphe doivent prendre en charge ce mode.

QFD_MAXEXTENTS Si pv n’est pas NULL, le pilote doit écrire une structure FD_DEVICEMETRICS dans la mémoire tampon pointée par pv.

La valeur de retour est la taille, en octets, nécessaire pour la mémoire tampon si pv a la valeur NULL.

QFD_TT_GRAY1_BITMAP La police réalisée doit être rendue en un bit par pixel de nuances de gris (c’est-à-dire en noir ou blanc).
QFD_TT_GRAY2_BITMAP La police réalisée doit être rendue en deux bits par pixel de nuances de gris.
QFD_TT_GRAY4_BITMAP La police réalisée doit être rendue en quatre bits par pixel de nuances de gris.
QFD_TT_GRAY8_BITMAP La police réalisée doit être rendue en huit bits par pixel de nuances de gris.
QFD_TT_MONO_BITMAP Identique à QFD_TT_GRAY1_BITMAP.

hg

Handle au glyphe.

pgd

Pointeur vers la structure GLYPHDATA . Ce paramètre peut être NULL.

[out] pv

Pointeur vers une mémoire tampon de données. Le type de données écrites dans cette mémoire tampon dépend de iMode. Ce paramètre peut être NULL.

cjSize

Spécifie la taille de la mémoire tampon pointée par pv.

Valeur retournée

La valeur de retour dépend de la valeur du paramètre iMode . Si une erreur se produit, la valeur de retour est FD_ERROR et un code d’erreur est journalisé.

Remarques

Pour les valeurs QFD_GLYPHANDBITMAP et QFD_GLYPHANDOUTLINE du paramètre iMode , GDI fournit un pointeur vers une structure GLYPHDATA (dans le paramètre pgd ). Le pilote place des informations sur les métriques de glyphes dans cette structure et écrit le contenu d’une structure GLYPHBITS ou d’une structure PATHOBJ à l’emplacement spécifié par le paramètre pv , selon que la police est une police bitmap ou une police de plan. Pour la valeur QFD_MAXEXTENTS du paramètre iMode , le pilote écrit le contenu d’une structure de FD_DEVICEMETRICS à l’emplacement spécifié par le paramètre pv .

DrvQueryFontData est requis pour les pilotes de police et les pilotes qui utilisent des polices spécifiques au périphérique ou au pilote.

Configuration requise

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

Voir aussi

DrvEnablePDEV

DrvQueryFontFile

FD_DEVICEMETRICS

FONTOBJ

GLYPHBITS

GLYPHDATA

PATHOBJ