STROBJ_bEnumPositionsOnly函式 (winddi.h)
STROBJ_bEnumPositionsOnly函式會列舉指定文字字串的字元識別和位置,但不會建立快取的字元位圖。
語法
ENGAPI BOOL STROBJ_bEnumPositionsOnly(
STROBJ *pstro,
ULONG *pc,
PGLYPHPOS *ppgpos
);
參數
pstro
描述文字字串之 STROBJ 結構的呼叫端提供指標。 這通常是驅動程式的 DrvTextOut 函式收到的 STROBJ 結構。
pc
呼叫端提供的位址,可接收 ppgpos 中指標所指向的 GLYPHPOS 結構 GDI 提供數目。
ppgpos
呼叫端提供的位址,接收 GLYPHPOS 結構陣列的 GDI 提供指標。 (請參閱下列一節。)
傳回值
如果更多字元仍要列舉,則傳回值為 TRUE ;如果列舉完成,則傳回值為 FALSE 。 如果無法列舉字元,則會DDI_ERROR傳回值,並記錄錯誤碼。
備註
STROBJ_bEnumPositionsOnly函式通常會從驅動程式的DrvTextOut函式內呼叫。 它會執行與STROBJ_bEnum相同的作業 , 但有一個重要例外狀況 - GDI 不會建立圖像的快取位圖。 STROBJ_bEnum函式假設驅動程序最終會需要這些點陣圖。 不過,許多較新的印表機包含內部點陣化程式,因此不需要 GDI 來轉譯圖像。 針對這類印表機,消除伺服器記憶體中圖像點陣圖的自動轉譯和快取,可大幅節省處理時間和記憶體配置。
對於支持內部圖像點陣化的印表機,應遵循下列規則:
- 驅動程式應該在其 DEVINFO 結構中設定GCAPS_FONT_RASTERIZER旗標。
- 驅動程式的 DrvTextOut 函式應該呼叫 STROBJ_bEnumPositionsOnly ,而不是 呼叫 STROBJ_bEnum。
- 如果列印作業包含裝置無法在內部點陣化的字型,驅動程式應該呼叫 FONTOBJ_cGetGlyphs 以取得圖像點陣圖。
- 如果驅動程式需要在列印文字字串之後判斷可能印表機的位置,但不需要字型圖像,它可以呼叫 STROBJ_bGetAdvanceWidths。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 可在 Windows 2000 和更新版本的 Windows 作業系統中使用。 |
目標平台 | Universal |
標頭 | winddi.h (包括 Winddi.h) |
程式庫 | Win32k.lib |
Dll | Win32k.sys |