DrvQueryTrueTypeTable 函式 (winddi.h)
DrvQueryTrueTypeTable 函式會存取 TrueType 字型描述檔案中的特定數據表。
語法
LONG DrvQueryTrueTypeTable(
ULONG_PTR iFile,
ULONG ulFont,
ULONG ulTag,
PTRDIFF dpStart,
ULONG cjBuf,
BYTE *pjBuf,
PBYTE *ppjTable,
ULONG *pcjTable
);
參數
iFile
驅動程式定義的值指標,識別驅動程式提供的 TrueType 字型檔案。 此指標是從 DrvLoadFontFile取得。
ulFont
指定驅動程式字型的單一索引。
ulTag
指定要存取的數據表。 如果 ulTag 為零,驅動程式應該會傳回整個檔案的存取權。
dpStart
指定要從中開始存取之數據表開頭的位移。 如果 ulTag 為零, dpStart 是檔案開頭的位移。
cjBuf
指定 pjBuf 指向的緩衝區大小,以位元組為單位,或為零。
pjBuf
如果不是 NULL,則指向驅動程式應該複製數據表或字型數據的緩衝區。
ppjTable
如果不是 NULL,則指向驅動程式應該傳回數據表或字型數據位址的位置。
pcjTable
如果不是 NULL,則指向驅動程式應該傳回 *ppjTable 所指向之數據表或字型數據的位元組長度的位置。
傳回值
DrvQueryTrueTypeTable 會傳回下列其中一個值:
- 如果 pjBuf 為 NULL,緩衝區保存整個數據表所需的位元組數目 (這與 pcjTable) 中傳回的值相同。
- 如果 pjBuf 不是 NULL,則為複製的位元元組數目。
- 如果發生錯誤,FD_ERROR。
備註
DrvQueryTrueTypeTable 必須在 TrueType 字型驅動程序中實作。
有兩種方式可以要求 DrvQueryTrueTypeTable 傳回數據表或字型資料:
- 當 cjBuf 和 pjBuf 都不是 NULL 時,驅動程式應該將要求數據表的內容複製到 pjBuf 指向的緩衝區。 在此情況下, ppjTable 和 pcjTable 將會是 NULL ,而且應該由驅動程式忽略。
- 當ppjTable和pcjTable都不是NULL時,驅動程式應該將數據表的指標放在 *ppjTable 中,並以位元組為單位的數據表長度。 在此情況下, cjBuf 和 pjBuf 會是 NULL ,而且應該由驅動程式忽略。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | winddi.h (包含Winddi.h) |