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) |