Share via


STROBJ_bEnumPositionsOnly-Funktion (winddi.h)

Die STROBJ_bEnumPositionsOnly-Funktion listet Glyphenidentitäten und Positionen für eine angegebene Textzeichenfolge auf, erstellt jedoch keine zwischengespeicherten Glyphenbitbitten.

Syntax

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

Parameter

pstro

Ein vom Aufrufer bereitgestellter Zeiger auf eine STROBJ-Struktur , die eine Textzeichenfolge beschreibt. Dies ist in der Regel die STROBJ-Struktur, die von der DrvTextOut-Funktion des Treibers empfangen wird.

pc

Eine vom Aufrufer bereitgestellte Adresse, um die von GDI bereitgestellte Anzahl von GLYPHPOS-Strukturen zu empfangen, auf die der Zeiger in ppgpos verweist.

ppgpos

Eine vom Aufrufer bereitgestellte Adresse, die einen von GDI bereitgestellten Zeiger auf ein Array von GLYPHPOS-Strukturen empfängt. (Weitere Informationen finden Sie im folgenden Abschnitt mit den Anmerkungen .)

Rückgabewert

Der Rückgabewert ist TRUE , wenn weitere Glyphen aufgelistet werden müssen, oder FALSE , wenn die Enumeration abgeschlossen ist. Der Rückgabewert ist DDI_ERROR, wenn die Glyphen nicht aufgezählt werden können und ein Fehlercode protokolliert wird.

Hinweise

Die STROBJ_bEnumPositionsOnly-Funktion wird in der Regel innerhalb der DrvTextOut-Funktion eines Treibers aufgerufen. Es führt die gleichen Vorgänge wie STROBJ_bEnum mit einer wichtigen Ausnahme aus– GDI erstellt keine zwischengespeicherten Bitmaps der Glyphen. Die STROBJ_bEnum-Funktion geht davon aus, dass der Treiber diese Bitmaps irgendwann benötigt. Viele neuere Drucker enthalten jedoch interne Rasterisierer und benötigen daher keine GDI zum Rendern von Glyphen. Bei solchen Druckern führt das Entfernen des automatischen Renderns und Zwischenspeicherns von Glyphenbitbits im Serverspeicher zu erheblichen Einsparungen sowohl bei der Verarbeitungszeit als auch bei der Speicherbelegung.

Für Drucker, die die interne Glyphenrasterung unterstützen, sollten die folgenden Regeln befolgt werden:

  • Der Treiber sollte das GCAPS_FONT_RASTERIZER-Flag in seiner DEVINFO-Struktur festlegen.
  • Die DrvTextOut-Funktion des Treibers sollte STROBJ_bEnumPositionsOnly anstelle von STROBJ_bEnum aufrufen.
  • Wenn der Druckauftrag eine Schriftart enthält, die das Gerät intern nicht rastern kann, sollte der Treiber FONTOBJ_cGetGlyphs aufrufen, um Glyphenbitbits zu erhalten.
  • Wenn ein Treiber die wahrscheinliche Druckerposition bestimmen muss, nachdem eine Textzeichenfolge gedruckt wurde, aber keine Schriftarten-Glyphe benötigt, kann er STROBJ_bGetAdvanceWidths aufrufen.
Da GDI keine zwischengespeicherten Bitmaps der Glyphen erstellt, ist der Inhalt der GLYPHDEF-Vereinigung innerhalb jeder zurückgegebenen GLYPHPOS-StrukturNULL.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme.
Zielplattform Universell
Header winddi.h (einschließlich Winddi.h)
Bibliothek Win32k.lib
DLL Win32k.sys

Weitere Informationen

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

GLYPHPOS

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths