Share via


DrvLoadFontFile 函式 (winddi.h)

DrvLoadFontFile 函式會接收與載入和對應字型檔案相關的 GDI 資訊。

語法

ULONG_PTR DrvLoadFontFile(
  ULONG        cFiles,
  ULONG_PTR    *piFile,
  PVOID        *ppvView,
  ULONG        *pcjView,
  DESIGNVECTOR *pdv,
  ULONG        ulLangID,
  ULONG        ulFastCheckSum
);

參數

cFiles

呼叫端提供的值,指出與字型相關聯的檔案數目。

piFile

呼叫端提供的指標,指向檔案句柄的 cFiles 大小陣列。 每個句柄都代表與字型相關聯的其中一個檔案。 檔案句柄可以個別傳遞至 EngMapFontFileFD

ppvView

呼叫端提供的 cFiles 大小數位指標,其中包含每個字型檔案已對應的記憶體空間起始位址。

pcjView

呼叫端提供的 cFiles 大小數位指標,其中包含每個字型檔案已對應到其中的記憶體空間大小。

pdv

對於 Adobe Multiple Master 字型,這是設計VECTOR 結構的呼叫端指標, (如 Microsoft Windows SDK 檔中所述,) 識別多個主實例。 否則,此參數為 NULL

ulLangID

從登錄取得的呼叫端提供的語言標識碼。

ulFastCheckSum

指定字型的 GDI 提供總和檢查碼。 如果此參數不是零的,則可以使用 GDI 字型快取引擎,以更快速地存取字型。 如果此參數為零,就無法使用 GDI 字型引擎。

傳回值

如果作業成功,它應該會傳回可唯一識別字型之驅動程式定義值的指標。 驅動程式接著會將此指標當作輸入參數接收給DrvQueryFontDrvQueryFontFile、DrvQueryFontTree 等函式。 如果發生錯誤,函式應該會傳回HFF_INVALID。

備註

需要字型驅動程式才能提供 DrvLoadFontFile 函式。 函式的目的是要允許字型驅動程式接收通知,指出正在載入和對應字型的相關檔案。 驅動程式可以儲存輸入自變數以供稍後使用。

載入和對應字型檔案需要呼叫 EngMapFontFileFD。 當應用程式呼叫 AddFontResource 或 AddFontResourceEx (Windows SDK 檔) 中所述時,GDI 會呼叫 EngMapFontFileFD,然後呼叫 DrvLoadFontFileDrvLoadFontFile 函式的 ppvViewpcjView 參數會提供每個檔案對應的位置和大小,如 EngMapFontFileFD 所傳回。

GDI 會在 DrvLoadFontFile 傳回時取消對應檔案。 如果驅動程式稍後需要重新對應檔案,為了回應 GDI 的後續呼叫,如果 EngMapFontFileFD 本身已儲存 cFiles 和 piFile 參數,則可以呼叫 EngMapFontFileFD 本身。

當 GDI 字型引擎呼叫字型驅動程式的 DrvLoadFontFile DDI 時,它會在 ulFastCheckSum 參數中傳遞字型總和檢查碼。 如果此參數不是零的,而且有問題的字型已快取, DrvLoadFontFile 可以使用 呼叫 EngFntCacheLookUp 來取得字型數據的指標。 在字型驅動程式取得字型數據的指標之後,就可以載入字型數據。 如果尚未快取字型,字型驅動程式可以先配置字型快取的記憶體、使用 對 EngFntCacheAlloc 的呼叫,然後將字型數據寫入該記憶體,以快取字型驅動程式。 如果字型驅動程式讀取或寫入字型數據時發生錯誤,它可以透過呼叫 EngFntCacheFault 來通知 GDI 字型引擎。

如果 GDI 字型引擎稱為 DrvLoadFontFile ,並傳入 ulFastCheckSum 參數的值為零,這表示 GDI 字型引擎不在作業中,而且字型驅動程式不需要採取任何動作。

規格需求

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

另請參閱

DrvUnloadFontFile

EngFntCacheAlloc

EngFntCacheFault

EngFntCacheLookUp