Partager via


fonction STROBJ_bEnumPositionsOnly (winddi.h)

La fonction STROBJ_bEnumPositionsOnly énumère les identités et les positions de glyphes pour une chaîne de texte spécifiée, mais ne crée pas de bitmaps de glyphes mises en cache.

Syntaxe

ENGAPI BOOL STROBJ_bEnumPositionsOnly(
  STROBJ    *pstro,
  ULONG     *pc,
  PGLYPHPOS *ppgpos
);

Paramètres

pstro

Pointeur fourni par l’appelant vers une structure STROBJ décrivant une chaîne de texte. Il s’agit généralement de la structure STROBJ reçue par la fonction DrvTextOut du pilote.

pc

Adresse fournie par l’appelant pour recevoir le nombre de structures GLYPHPOS fournies par GDI pointées par le pointeur dans ppgpos.

ppgpos

Adresse fournie par l’appelant qui reçoit un pointeur fourni par GDI vers un tableau de structures GLYPHPOS . (Voir la section Remarques suivante.)

Valeur retournée

La valeur de retour est TRUE si d’autres glyphes restent à énumérer, ou FALSE si l’énumération est terminée. La valeur de retour est DDI_ERROR si les glyphes ne peuvent pas être énumérés et qu’un code d’erreur est journalisé.

Remarques

La fonction STROBJ_bEnumPositionsOnly est généralement appelée à partir de la fonction DrvTextOut d’un pilote. Il effectue les mêmes opérations que STROBJ_bEnum avec une exception importante : GDI ne crée pas de bitmaps mises en cache des glyphes. La fonction STROBJ_bEnum suppose que le pilote aura besoin de ces bitmaps. Toutefois, de nombreuses imprimantes plus récentes contiennent des rastériseurs internes et n’ont donc pas besoin de GDI pour afficher les glyphes. Pour ces imprimantes, l’élimination du rendu et de la mise en cache automatiques des bitmaps de glyphes dans la mémoire du serveur permet d’économiser considérablement le temps de traitement et l’allocation de mémoire.

Pour les imprimantes qui prennent en charge la rastérisation interne des glyphes, les règles suivantes doivent être suivies :

  • Le pilote doit définir l’indicateur GCAPS_FONT_RASTERIZER dans sa structure DEVINFO .
  • La fonction DrvTextOut du pilote doit appeler STROBJ_bEnumPositionsOnly au lieu de STROBJ_bEnum.
  • Si le travail d’impression inclut une police que l’appareil ne peut pas rastériser en interne, le pilote doit appeler FONTOBJ_cGetGlyphs pour obtenir des bitmaps de glyphes.
  • Si un pilote doit déterminer la position probable de l’imprimante après l’impression d’une chaîne de texte, mais qu’il n’a pas besoin d’un glyphe de police, il peut appeler STROBJ_bGetAdvanceWidths.
Étant donné que GDI ne crée pas de bitmaps mises en cache des glyphes, le contenu de l’union GLYPHDEF dans chaque structure GLYPHPOS retournée sera NULL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows 2000 et versions ultérieures des systèmes d’exploitation Windows.
Plateforme cible Universal
En-tête winddi.h (inclure Winddi.h)
Bibliothèque Win32k.lib
DLL Win32k.sys

Voir aussi

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

GLYPHPOS

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths