ホーム › Graphics.DirectWrite › IDWriteTextAnalysisSink1
IDWriteTextAnalysisSink1
COM公式ドキュメント
テキストアナライザーの出力を受け取るために実装するインターフェイスです。
メソッド 1
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 7 HRESULT SetGlyphOrientation(DWORD textPosition, DWORD textLength, DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle, BYTE adjustedBidiLevel, BOOL isSideways, BOOL isRightToLeft)
テキストアナライザーは、シェイピングと描画のために各文字の実際の向きを報告する目的でこれをコールバックします。
| textPosition | DWORD | in | 報告を開始する位置です。 |
| textLength | DWORD | in | 報告される範囲の UTF-16 単位の数です。 |
| glyphOrientationAngle | DWRITE_GLYPH_ORIENTATION_ANGLE | in | テキスト範囲内のグリフの角度を指定する DWRITE_GLYPH_ORIENTATION_ANGLE 型の値です(ワールド相対変換を取得するには IDWriteTextAnalyzer1::GetGlyphOrientationTransform に渡します)。 |
| adjustedBidiLevel | BYTE | in | ラン(run)の並べ替えのためにクライアントレイアウトが使用する、調整済みの双方向(bidi)レベルです。これは、グリフが依然として RTL としてシェイピングされる一方でランが CJK や Latin とともに TTB(上から下)になるアラビア語の縦積みのようなケースでは、ソースから取得された解決済みの双方向レベルとは異なります。 |
| isSideways | BOOL | in | グリフが横向きに回転しているかどうかを示します。これは CJK の既定のケースであり、縦積みの Latin のケースでもあります。 |
| isRightToLeft | BOOL | in | スクリプトを右から左(right-to-left)としてシェイピングすべきかどうかを示します。アラビア語の縦積み(上から下)の場合、調整済みの双方向レベルが偶数レベルに強制されるときでも、これは true のままです。 |
戻り値
Type: HRESULT
成功を示すコード、または解析を中止するためのエラーコードを返します。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteTextAnalysisSink1 "{B0D941A0-85E7-4D8B-9FD3-5CED9934482A}"
#usecom global IDWriteTextAnalysisSink1 IID_IDWriteTextAnalysisSink1 "{}"
#comfunc global IDWriteTextAnalysisSink1_SetGlyphOrientation 7 int,int,int,int,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。