IDWriteTextAnalyzer_GetGlyphs

入力テキスト文字列を解析し、フォントと書記系のレンダリング規則に従ってグリフおよび関連するグリフデータの集合にマッピングする。

IDWriteTextAnalyzer_GetGlyphs this, textString, textLength, fontFace, isSideways, isRightToLeft, scriptAnalysis, localeName, numberSubstitution, features, featureRangeLengths, featureRanges, maxGlyphCount, clusterMap, textProps, glyphIndices, glyphProps, actualGlyphCount

this : [comobj] IDWriteTextAnalyzer インターフェースの COM オブジェクト変数
textString : [wstr] 型: const WCHAR* グリフに変換する文字の配列。
textLength : [int] 型: UINT32 textString の長さ。
fontFace : [comobj] 型: IDWriteFontFace* 出力グリフの元となるフォントフェイス。
isSideways : [int] 型: BOOL テキストを縦書きで描画することを意図している場合に TRUE を設定するブールフラグ。
isRightToLeft : [int] 型: BOOL 右から左方向のテキストの場合に TRUE を設定するブールフラグ。
scriptAnalysis : [var] 型: const DWRITE_SCRIPT_ANALYSIS* AnalyzeScript 呼び出しから得られるスクリプト解析結果へのポインタ。
localeName : [wstr] 型: const WCHAR* グリフを選択する際に使用するロケール。例えば同じ文字でも ja-jp と zh-chs では異なるグリフにマッピングされる場合がある。NULL の場合はスクリプトに基づく既定のマッピングが使用される。
numberSubstitution : [comobj] 型: IDWriteNumberSubstitution* AnalyzeNumberSubstitution の結果に基づき、数字および関連する数値文字に対して適切なグリフを選択する任意の数字置換へのポインタ。NULL を渡すと、置換は不要であり、数字に対して基本グリフを使用することを示す。
features : [var] 型: const DWRITE_TYPOGRAPHIC_FEATURES** 各フィーチャー範囲で使用するタイポグラフィフィーチャーの集合へのポインタの配列。
featureRangeLengths : [var] 型: const UINT32* 各フィーチャー範囲の長さ (文字数)。すべての長さの合計は textLength と等しくなるべきである。
featureRanges : [int] 型: UINT32 フィーチャー範囲の数。
maxGlyphCount : [int] 型: UINT32 返却可能なグリフの最大数。
clusterMap : [int] 型: UINT16* メソッドが戻る際、文字範囲からグリフ範囲へのマッピングを格納する。
textProps : [var] 型: DWRITE_SHAPING_TEXT_PROPERTIES* メソッドが戻る際、各文字のシェーピングプロパティを格納する構造体の配列へのポインタを格納する。
glyphIndices : [int] 型: UINT16* 出力グリフインデックス。
glyphProps : [var] 型: DWRITE_SHAPING_GLYPH_PROPERTIES* メソッドが戻る際、各出力グリフのシェーピングプロパティを格納する構造体の配列へのポインタを格納する。
actualGlyphCount : [int] 型: UINT32* メソッドが戻る際、呼び出しが成功した場合に返されたグリフの実数を格納する。

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

解説

入力テキスト文字列を解析し、フォントと書記系のレンダリング規則に従ってグリフおよび関連するグリフデータの集合にマッピングする。

[戻り値]
型: HRESULT このメソッドが成功した場合は S_OK を返す。そうでない場合は HRESULT エラーコードを返す。

[備考]
文字からグリフへのマッピングは一般に多対多である。グリフ単位の出力バッファに対する推奨見積もりは (3 * textLength / 2
+ 16) だが、これで十分である保証はない。actualGlyphCount
パラメータの値は呼び出しが成功した場合にのみ有効である。maxGlyphCount
が十分でない場合、HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)
が返される。アプリケーションはより大きなバッファを確保して再試行すべきである。

情報

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