ホーム › Graphics.DirectWrite › IDWriteTextAnalyzer2
IDWriteTextAnalyzer2
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 19 HRESULT GetGlyphOrientationTransform(DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle, BOOL isSideways, FLOAT originX, FLOAT originY, DWRITE_MATRIX* transform)
| glyphOrientationAngle | DWRITE_GLYPH_ORIENTATION_ANGLE | in | グリフの回転角度(0/90/180/270度)を指定する列挙値。 |
| isSideways | BOOL | in | 横倒し表示するか否かのフラグ。 |
| originX | FLOAT | in | 回転の基準となる原点のX座標(DIP)。 |
| originY | FLOAT | in | 回転の基準となる原点のY座標(DIP)。 |
| transform | DWRITE_MATRIX* | out | 原点を考慮した回転変換行列を受け取る構造体へのポインタ(出力)。 |
vtbl 20 HRESULT GetTypographicFeatures(IDWriteFontFace* fontFace, DWRITE_SCRIPT_ANALYSIS scriptAnalysis, LPWSTR localeName, DWORD maxTagCount, DWORD* actualTagCount, DWRITE_FONT_FEATURE_TAG* tags)
| fontFace | IDWriteFontFace* | in | 機能を問い合わせるフォントフェイス。 |
| scriptAnalysis | DWRITE_SCRIPT_ANALYSIS | in | 対象テキストのスクリプト解析結果を表す構造体。 |
| localeName | LPWSTR | inoptional | テキストのロケール名。NULL可。 |
| maxTagCount | DWORD | in | tags配列の最大要素数。 |
| actualTagCount | DWORD* | out | 実際の機能タグ数を受け取るポインタ(出力)。容量不足時に必要数が返る。 |
| tags | DWRITE_FONT_FEATURE_TAG* | out | サポートされるOpenType機能タグを受け取る配列(出力)。 |
vtbl 21 HRESULT CheckTypographicFeature(IDWriteFontFace* fontFace, DWRITE_SCRIPT_ANALYSIS scriptAnalysis, LPWSTR localeName, DWRITE_FONT_FEATURE_TAG featureTag, DWORD glyphCount, WORD* glyphIndices, BYTE* featureApplies)
| fontFace | IDWriteFontFace* | in | 機能適用を確認するフォントフェイス。 |
| scriptAnalysis | DWRITE_SCRIPT_ANALYSIS | in | 対象テキストのスクリプト解析結果を表す構造体。 |
| localeName | LPWSTR | inoptional | テキストのロケール名。NULL可。 |
| featureTag | DWRITE_FONT_FEATURE_TAG | in | 確認対象のOpenType機能タグ。 |
| glyphCount | DWORD | in | 確認するグリフの個数。 |
| glyphIndices | WORD* | in | 確認対象のグリフインデックスの配列。 |
| featureApplies | BYTE* | out | 各グリフに当該機能が適用されるかを受け取るバイト配列(出力)。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDWriteTextAnalyzer2 "{553A9FF3-5693-4DF7-B52B-74806F7F2EB9}" #usecom global IDWriteTextAnalyzer2 IID_IDWriteTextAnalyzer2 "{}" #comfunc global IDWriteTextAnalyzer2_GetGlyphOrientationTransform 19 int,int,float,float,var #comfunc global IDWriteTextAnalyzer2_GetTypographicFeatures 20 sptr,int,wstr,int,var,var #comfunc global IDWriteTextAnalyzer2_CheckTypographicFeature 21 sptr,int,wstr,int,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteTextAnalyzer2 "{553A9FF3-5693-4DF7-B52B-74806F7F2EB9}" #usecom global IDWriteTextAnalyzer2 IID_IDWriteTextAnalyzer2 "{}" #comfunc global IDWriteTextAnalyzer2_GetGlyphOrientationTransform 19 int,int,float,float,sptr #comfunc global IDWriteTextAnalyzer2_GetTypographicFeatures 20 sptr,int,wstr,int,sptr,sptr #comfunc global IDWriteTextAnalyzer2_CheckTypographicFeature 21 sptr,int,wstr,int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。