Partager via


Fonction DrvQueryTrueTypeTable (winddi.h)

La fonction DrvQueryTrueTypeTable accède à des tables spécifiques dans un fichier de description de police TrueType.

Syntaxe

LONG DrvQueryTrueTypeTable(
  ULONG_PTR iFile,
  ULONG     ulFont,
  ULONG     ulTag,
  PTRDIFF   dpStart,
  ULONG     cjBuf,
  BYTE      *pjBuf,
  PBYTE     *ppjTable,
  ULONG     *pcjTable
);

Paramètres

iFile

Pointeur vers une valeur définie par le pilote qui identifie le fichier de police TrueType fourni par le pilote. Ce pointeur est obtenu à partir de DrvLoadFontFile.

ulFont

Spécifie l’index de base unique de la police du pilote.

ulTag

Spécifie la table à accéder. Si ulTag est égal à zéro, le pilote doit renvoyer l’accès au fichier entier.

dpStart

Spécifie le décalage à partir du début des tables à partir de laquelle commencer l’accès. Si ulTag est égal à zéro, dpStart est le décalage du début du fichier.

cjBuf

Spécifie la taille en octets de la mémoire tampon vers laquelle pjBuf pointe, ou zéro.

pjBuf

Si ce n’est pas NULL, pointe vers la mémoire tampon dans laquelle le pilote doit copier les données de table ou de police.

ppjTable

Si ce n’est pas NULL, pointe vers l’emplacement dans lequel le pilote doit retourner l’adresse des données de table ou de police.

pcjTable

Si ce n’est pas NULL, pointe vers l’emplacement dans lequel le pilote doit retourner la longueur en octets des données de table ou de police vers lesquelles *ppjTable pointe.

Valeur retournée

DrvQueryTrueTypeTable retourne l’une des valeurs suivantes :

  • Si pjBuf a la valeur NULL, le nombre d’octets requis pour que la mémoire tampon contienne l’intégralité de la table (il s’agit de la même valeur que la valeur retournée dans pcjTable).
  • Si pjBuf n’a pas la valeur NULL, le nombre d’octets copiés.
  • Si une erreur se produit, FD_ERROR.

Remarques

DrvQueryTrueTypeTable doit être implémenté dans les pilotes de police TrueType.

Il existe deux façons pour DrvQueryTrueTypeTable de retourner des données de table ou de police :

  1. Lorsque ni cjBuf ni pjBuf ne sont NULL, le pilote doit copier le contenu de la table demandée dans la mémoire tampon vers laquelle pjBuf pointe. Dans ce cas, ppjTable et pcjTable ont la valeur NULL et doivent être ignorés par le pilote.
  2. Lorsque ni ppjTable ni pcjTable n’ont la valeur NULL, le pilote doit placer un pointeur vers la table dans *ppjTable et la longueur, en octets, de la table dans *pciTable. Dans ce cas, cjBuf et pjBuf ont la valeur NULL et doivent être ignorés par le pilote.

Configuration requise

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

Voir aussi

DrvLoadFontFile