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