Share via


DrvQueryFontData 函式 (winddi.h)

DrvQueryFontData 函式會擷取已實現字型的相關信息。

語法

LONG DrvQueryFontData(
        DHPDEV    dhpdev,
        FONTOBJ   *pfo,
        ULONG     iMode,
        HGLYPH    hg,
        GLYPHDATA *pgd,
  [out] PVOID     pv,
        ULONG     cjSize
);

參數

dhpdev

從先前呼叫DrvEnablePDEV傳回的實體裝置 PDEV 句柄。

pfo

定義字型實現的 FONTOBJ 結構的指標。

iMode

指定所要求的信息類型。 此參數可以是下列其中一個值:

意義
QFD_GLYPHANDBITMAP 如果 pgd 不是 NULL,則驅動程式應該以 hg 所指定的字元計量填入 GLYPHDATA 結構。

如果 pv 不是 NULL,則應該在此位址寫入 GLYPHBITS 結構。 驅動程式應該將對應至 hg 所指定字元的字元陣圖複製到這個結構中。 結構的大小是由 cjSize 指定。

如果驅動程式不支援字元位圖,則此函式只會呼叫 ,並將 pv 設定為 NULL

如果驅動程式支援圖像位圖,則傳回值是字元位圖的大小,以位元組為單位。 否則為零。

必須支援此模式。

QFD_GLYPHANDOUTLINE 如果 pgd 不是 NULL,則驅動程式應該以 hg 所指定的字元計量填入 GLYPHDATA 結構。

如果 pv 不是 NULL,應該在此位址寫入 PATHOBJ 結構。 驅動程式會將此 PATHOBJ 傳遞至 PATHOBJ_Xxx 服務,以建立 hg 所指定圖像的大綱。 應該忽略 cjSize 參數。

如果函式成功,則傳回值為零。 否則,它會FD_ERROR。

只有提供圖像大綱的字型驅動程式才需要支援此模式。

QFD_MAXEXTENTS 如果 pv 不是 NULL,驅動程式應該 將FD_DEVICEMETRICS 結構寫入 pv 所指向的緩衝區。

如果 pvNULL,則傳回值是緩衝區所需的大小,以位元組為單位。

QFD_TT_GRAY1_BITMAP 實作的字型應該以一個圖元的灰階 (轉譯,也就是黑色或白色) 。
QFD_TT_GRAY2_BITMAP 實現的字型應該以每圖元的灰階兩個位呈現。
QFD_TT_GRAY4_BITMAP 實現的字型應該以每圖元的灰階四位呈現。
QFD_TT_GRAY8_BITMAP 實現的字型應該以灰階每圖元八位呈現。
QFD_TT_MONO_BITMAP 與QFD_TT_GRAY1_BITMAP相同。

hg

圖像的句柄。

pgd

GLYPHDATA 結構的指標。 此參數可以是 Null

[out] pv

數據緩衝區的指標。 寫入此緩衝區的數據類型取決於 iMode。 此參數可以是 Null

cjSize

指定 pv 所指向的緩衝區大小。

傳回值

傳回值取決於 iMode 參數的值。 如果發生錯誤,傳回值會FD_ERROR,並記錄錯誤碼。

備註

針對 iMode 參數的QFD_GLYPHANDBITMAP和QFD_GLYPHANDOUTLINE值,GDI 會在 pgd 參數中提供 GLYPHDATA 結構的指標 () 。 驅動程式會將圖像計量的相關信息放在這個結構中,並分別寫入 pv 參數所指定位置中 GLYPHBITS 結構或 PATHOBJ 結構的內容,視字型是位圖字型或大綱字型而定。 針對 iMode 參數的QFD_MAXEXTENTS值,驅動程式會在 pv 參數所指定的位置中寫入FD_DEVICEMETRICS結構的內容。

使用裝置特定字型或驅動程式特定字型的字型驅動程序和驅動程式需要DrvQueryFontData

規格需求

需求
目標平台 桌面
標頭 winddi.h (包括 Winddi.h)

另請參閱

DrvEnablePDEV

DrvQueryFontFile

FD_DEVICEMETRICS

FONTOBJ

GLYPHBITS

GLYPHDATA

PATHOBJ