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 サイズのファイル ハンドルの配列への呼び出し元が指定したポインター。 各ハンドルは、フォントに関連付けられているファイルの 1 つを表します。 ファイル ハンドルは、 EngMapFontFileFD に個別に渡すことができます。
ppvView
呼び出し元が指定した、各フォント ファイルがマップされているメモリ領域の開始アドレスを含む cFiles サイズの配列へのポインター。
pcjView
呼び出し元が提供する、各フォント ファイルがマップされているメモリ領域のサイズを含む cFiles サイズの配列へのポインター。
pdv
Adobe Multiple Master フォントの場合、これは、複数マスター インスタンスを識別する DESIGNVECTOR 構造体 (Microsoft Windows SDK ドキュメントで説明) への呼び出し元から提供されるポインターです。 それ以外の場合、このパラメーターは NULL です。
ulLangID
呼び出し元が指定した言語識別子。レジストリから取得されます。
ulFastCheckSum
フォントの GDI 指定のチェックサムを指定します。 このパラメーターが 0 以外の場合は、フォントにすばやくアクセスするために GDI フォント キャッシュ エンジンを使用できます。 このパラメーターが 0 の場合、GDI フォント エンジンは使用できません。
戻り値
操作が成功した場合は、フォントを一意に識別するドライバー定義値へのポインターを返す必要があります。 ドライバーは、その後、DrvQueryFont、DrvQueryFontFile、DrvQueryFontTree などの関数への入力パラメーターとしてこのポインターを受け取ります。 エラーが発生した場合、関数はHFF_INVALIDを返す必要があります。
注釈
DrvLoadFontFile 関数を指定するには、フォント ドライバーが必要です。 この関数の目的は、フォント ドライバーが、フォントの関連ファイルが読み込まれ、マップされていることを示す通知を受信できるようにすることです。 ドライバーは、後で使用するために入力引数を格納できます。
フォント ファイルの読み込みとマッピングには、 EngMapFontFileFD の呼び出しが必要です。 アプリケーションが AddFontResource または AddFontResourceEx (Windows SDKドキュメントで説明) を呼び出すと、GDI は EngMapFontFileFD を呼び出し、DrvLoadFontFile を呼び出します。 DrvLoadFontFile 関数の ppvView パラメーターと pcjView パラメーターは、EngMapFontFileFD によって返される各ファイルのマッピングの場所とサイズを指定します。
GDI は、DrvLoadFontFile が返されるときにファイルのマップを解除します。 ドライバーが後でファイルを再マップする必要がある場合は、GDI からの後続の呼び出しに応じて、cFiles パラメーターと piFile パラメーターを保存している場合、EngMapFontFileFD 自体を呼び出すことができます。
GDI フォント エンジンは、フォント ドライバーの DrvLoadFontFile DDI を呼び出すと、 ulFastCheckSum パラメーターでフォントのチェックサムを渡します。 このパラメーターが 0 以外で、問題のフォントがキャッシュされている場合、 DrvLoadFontFile は EngFntCacheLookUp を呼び出してフォント データへのポインターを取得できます。 フォント ドライバーは、フォント データへのポインターを取得した後、フォント データを読み込むことができます。 フォントがキャッシュされていない場合、フォント ドライバーは、まず、 EngFntCacheAlloc の呼び出しを使用してフォント キャッシュのメモリを割り当て、そのメモリにフォント データを書き込むことで、フォントをキャッシュできます。 フォント ドライバーでフォント データの読み取りまたは書き込み中にエラーが発生した場合は、 EngFntCacheFault を呼び出すことで GDI フォント エンジンに通知できます。
GDI フォント エンジンが DrvLoadFontFile を呼び出し、 ulFastCheckSum パラメーターに 0 の値を渡した場合、GDI フォント エンジンは動作せず、フォント ドライバーは何も行う必要はありません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | デスクトップ |
Header | winddi.h (Winddi.h を含む) |