GetFontData

GetFontData 関数は、TrueType フォントのフォントメトリックデータを取得する。

GetFontData hdc, dwTable, dwOffset, pvBuffer, cjBuffer

hdc : [intptr] デバイスコンテキストのハンドル。
dwTable : [int] フォントデータを取得する対象のフォントメトリックテーブルの名前。このパラメータは Microsoft 社の TrueType フォントファイル仕様に記載されたメトリックテーブルのいずれかを指定できる。このパラメータが 0 の場合、TrueType フォントファイルではファイルの先頭から、TrueType コレクションファイルでは現在選択されているフォントのデータの先頭から情報を取得する。TrueType コレクションファイルのファイル先頭からデータを取得するには 'ttcf' (0x66637474) を指定する。
dwOffset : [int] 情報取得を開始する位置の、フォントメトリックテーブル先頭からのオフセット。このパラメータが 0 の場合、dwTable で指定されたテーブルの先頭から情報を取得する。この値がテーブルのサイズ以上の場合、エラーとなる。
pvBuffer : [intptr] フォント情報を受け取るバッファへのポインタ。このパラメータが NULL の場合、関数はフォントデータに必要なバッファサイズを返す。
cjBuffer : [int] 取得する情報の長さ(バイト単位)。このパラメータが 0 の場合、GetFontData は dwTable で指定されたデータのサイズを返す。

(プラグイン / モジュール : gdi32.dll)

解説

GetFontData 関数は、TrueType フォントのフォントメトリックデータを取得する。

[戻り値]
関数が成功した場合、戻り値は返されたバイト数である。失敗した場合は GDI_ERROR を返す。

[備考]
この関数は、フォント操作アプリケーションがフォントファイルから直接 TrueType
フォント情報を取得するために使われる。フォント埋め込みについては Font Embedding Reference
を参照。アプリケーションは GetFontData 関数を使って TrueType
フォントをドキュメントと一緒に保存することがある。そのためにアプリケーションは OUTLINETEXTMETRIC 構造体の
otmfsType メンバを確認し、フォントが埋め込み可能かを判断する。otmfsType のビット 1
が立っている場合、フォントは埋め込みを許可しない。ビット 1 がクリアなら埋め込み可能である。ビット 2
が立っている場合、埋め込みは読み取り専用となる。埋め込みが許可されている場合、アプリケーションは
dwTable、dwOffset、cbData に 0 を指定してフォントファイル全体を取得できる。非 TrueType
フォントに対してこの関数で情報取得を試みると、エラーが発生する。

情報

プラグイン / モジュールgdi32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の gdi32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_gdi32_gen2.hs