IDWriteFactory
COM公式ドキュメント
以降のすべての DirectWrite オブジェクトを作成するために使用します。このインターフェイスは、すべての DirectWrite オブジェクトのルートとなるファクトリインターフェイスです。
解説(Remarks)
IDWriteFactory オブジェクトは、DWriteCreateFactory 関数を使用して作成します。
if (SUCCEEDED(hr))
{
hr = DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(IDWriteFactory),
reinterpret_cast<IUnknown**>(&pDWriteFactory_)
);
}
IDWriteFactory オブジェクトは、フォントローダーの登録やキャッシュされたフォントデータといった状態情報を保持します。この状態は共有することも分離することもできます。ほとんどのアプリケーションではメモリを節約できるため、共有が推奨されます。ただし、一部のオブジェクトに対して別個の状態を持たせたい場合には、分離が有用なことがあります。
メソッド 21
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
インストールされているフォントの集合を表すオブジェクトを取得します。
| fontCollection | IDWriteFontCollection** | out | このメソッドが返るとき、システムフォントコレクションオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
| checkForUpdates | BOOL | in | このパラメーターが 0 以外の場合、関数はインストールされているフォントの集合に対する変更を即座にチェックします。このパラメーターが FALSE の場合でも、フォントキャッシュサービスが実行されていれば変更は検出されますが、多少の遅延が生じることがあります。たとえば、アプリケーション自身がフォントをインストールした直後で、そのフォントがフォントコレクションに含まれていることを確実にしたい場合には、TRUE を指定するとよいでしょう。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
カスタムフォントコレクションローダーを使用してフォントコレクションを作成します。
| collectionLoader | IDWriteFontCollectionLoader* | in | アプリケーション定義のフォントコレクションローダーです。事前に RegisterFontCollectionLoader を使用して登録されている必要があります。 |
| collectionKey | void* | in | フォントファイルのコレクションを識別するためにローダーが使用するキーです。このキー用に確保するバッファーは、少なくとも collectionKeySize のサイズが必要です。 |
| collectionKeySize | DWORD | in | コレクションキーのサイズ(バイト単位)です。 |
| fontCollection | IDWriteFontCollection** | out | メソッドが成功した場合、システムフォントコレクションオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
カスタムフォントコレクションローダーをファクトリオブジェクトに登録します。
| fontCollectionLoader | IDWriteFontCollectionLoader* | in | 登録する IDWriteFontCollectionLoader オブジェクトへのポインターです。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
この関数はフォントコレクションローダーを DirectWrite に登録します。フォントコレクションローダーインターフェイスはシングルトンオブジェクトとして実装する必要があり、特定の種類のキーが与えられたときに、フォントコレクション内のフォントファイルを列挙する処理を担います。特定のインスタンスは一度だけ登録できます。以降の登録の試みはエラーを返し、すでに登録済みであることを示します。フォントファイルローダーの実装は、コンストラクター内で自身を DirectWrite に登録してはならず、デストラクター内で自身の登録を解除してもなりません。登録操作と登録解除操作は、それぞれオブジェクトの参照カウントを増加および減少させるためです。代わりに、フォントファイルローダーの DirectWrite への登録および登録解除は、フォントファイルローダーの実装の外部で行うべきです。
以前に RegisterFontCollectionLoader を使用して登録されたカスタムフォントコレクションローダーの登録を解除します。
| fontCollectionLoader | IDWriteFontCollectionLoader* | in | 登録を解除する IDWriteFontCollectionLoader オブジェクトへのポインターです。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ローカルのフォントファイルからフォントファイル参照オブジェクトを作成します。
| filePath | LPWSTR | in | フォントファイルの絶対パスを含む文字配列です。指定された filePath がディスク上の有効なファイルに対応していない場合、作成されたオブジェクトに対する以降の操作は失敗することがあります。 |
| lastWriteTime | FILETIME* | inoptional | 入力ファイルパスの最終更新日時です。このパラメーターを省略した場合、関数はフォントファイルにアクセスしてその最終書き込み時刻を取得します。余分なディスクアクセスを避けるため、この値を指定することが推奨されます。指定された lastWriteTime がディスク上のファイルと一致しない場合、作成されたオブジェクトに対する以降の操作は失敗することがあります。 |
| fontFile | IDWriteFontFile** | out | このメソッドが返るとき、新しく作成されたフォントファイル参照オブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
アプリケーション固有のフォントファイルリソースへの参照を作成します。
| fontFileReferenceKey | void* | in | fontFileLoader の存続期間中、フォントファイルリソースを一意に識別するフォントファイル参照キーです。 |
| fontFileReferenceKeySize | DWORD | in | フォントファイル参照キーのサイズ(バイト単位)です。 |
| fontFileLoader | IDWriteFontFileLoader* | in | fontFileReferenceKey によって識別されるファイルからデータを読み込むためにフォントシステムが使用するフォントファイルローダーです。 |
| fontFile | IDWriteFontFile** | out | このメソッドが成功したとき、新しく作成されたフォントファイルオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
この関数は、アプリケーションやドキュメントが、システムにインストールすることなくプライベートフォントを使用する必要がある場合のために提供されています。fontFileReferenceKey は、この呼び出しで使用される fontFileLoader のスコープ内でのみ一意であれば十分です。
フォントフェイスを表すオブジェクトを作成します。
| fontFaceType | DWRITE_FONT_FACE_TYPE | in | フォントフェイスのファイル形式の種類を示す値です。 |
| numberOfFiles | DWORD | in | フォントフェイスを表すために必要なフォントファイルの数(要素数)です。 |
| fontFiles | IDWriteFontFile** | in | フォントフェイスを表すフォントファイルオブジェクトです。IDWriteFontFace は入力されたフォントファイルオブジェクトへの参照を独自に保持するため、この呼び出しの後にそれらを解放してかまいません。 |
| faceIndex | DWORD | in | フォントファイルが複数のフォントフェイスのコレクションを含む場合における、フォントフェイスの 0 から始まるインデックスです。フォントファイルが単一のフェイスのみを含む場合、この値は 0 にする必要があります。 |
| fontFaceSimulationFlags | DWRITE_FONT_SIMULATIONS | in | テキストをアルゴリズム的に太字または斜体にするためのフォントフェイスシミュレーションフラグのうち、現在のフォントフェイスに適用するものを示す値です(適用しない場合もあります)。 |
| fontFace | IDWriteFontFace** | out | このメソッドが返るとき、新しく作成されたフォントフェイスオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
プライマリモニターに対する既定の設定でレンダリングパラメーターオブジェクトを作成します。モニターごとにレンダリングパラメーターが異なる場合があります。詳細については「How to Add Support for Multiple Monitors(複数モニターのサポートを追加する方法)」のトピックを参照してください。
| renderingParams | IDWriteRenderingParams** | out | このメソッドが返るとき、新しく作成されたレンダリングパラメーターオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
標準的な HRESULT エラーコードです。
指定したモニターに対する既定の設定でレンダリングパラメーターオブジェクトを作成します。ほとんどの場合、これがレンダリングパラメーターオブジェクトを作成する推奨方法です。
| monitor | HMONITOR | in | 指定したモニターのハンドルです。 |
| renderingParams | IDWriteRenderingParams** | out | このメソッドが返るとき、このメソッドによって作成されたレンダリングパラメーターオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
指定したプロパティでレンダリングパラメーターオブジェクトを作成します。(IDWriteFactory.CreateCustomRenderingParams)
| gamma | FLOAT | in | 新しいレンダリングパラメーターオブジェクトに設定するガンマレベルです。 |
| enhancedContrast | FLOAT | in | 新しいレンダリングパラメーターオブジェクトに設定する拡張コントラストレベルです。 |
| clearTypeLevel | FLOAT | in | 新しいレンダリングパラメーターオブジェクトに設定する ClearType レベルです。 |
| pixelGeometry | DWRITE_PIXEL_GEOMETRY | in | テキストのレンダリングを目的として想定される、デバイスピクセルの内部構造(すなわち、赤・緑・青の各色成分の物理的な配置)を表します。 |
| renderingMode | DWRITE_RENDERING_MODE | in | グリフをレンダリングする方式(たとえば ClearType ナチュラル品質)を表す値です。 |
| renderingParams | IDWriteRenderingParams** | out | このメソッドが返るとき、新しく作成されたレンダリングパラメーターオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォントファイルローダーを DirectWrite に登録します。
| fontFileLoader | IDWriteFontFileLoader* | in | 特定のファイルリソース種別に対応する IDWriteFontFileLoader オブジェクトへのポインターです。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
この関数はフォントファイルローダーを DirectWrite に登録します。フォントファイルローダーインターフェイスはシングルトンオブジェクトとして実装する必要があり、キーから特定の種類のフォントファイルリソースを読み込む処理を担います。特定のインスタンスは一度だけ登録できます。以降の登録の試みはエラーを返し、すでに登録済みであることを示します。フォントファイルローダーの実装は、コンストラクター内で自身を DirectWrite に登録してはならず、デストラクター内で自身の登録を解除してもなりません。登録操作と登録解除操作は、それぞれオブジェクトの参照カウントを増加および減少させるためです。代わりに、フォントファイルローダーの DirectWrite への登録および登録解除は、フォントファイルローダーの実装の外部で行うべきです。
以前に RegisterFontFileLoader を使用して DirectWrite フォントシステムに登録されたフォントファイルローダーの登録を解除します。
| fontFileLoader | IDWriteFontFileLoader* | in | 以前に RegisterFontFileLoader を使用して DirectWrite フォントシステムに登録されたファイルローダーへのポインターです。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
この関数は、フォントファイルローダーのコールバックを DirectWrite フォントシステムから登録解除します。フォントファイルローダーインターフェイスはシングルトンオブジェクトとして実装する必要があります。フォントファイルローダーの実装は、コンストラクター内で自身を DirectWrite に登録してはならず、デストラクター内で自身の登録を解除してもなりません。登録操作と登録解除操作は、それぞれオブジェクトの参照カウントを増加および減少させるためです。代わりに、フォントファイルローダーの DirectWrite への登録および登録解除は、フォントファイルローダーの実装の外部で行うべきです。
テキストレイアウトに使用するテキストフォーマットオブジェクトを作成します。(IDWriteFactory.CreateTextFormat)
| fontFamilyName | LPWSTR | in | フォントファミリーの名前を含む文字配列です。 |
| fontCollection | IDWriteFontCollection* | inoptional | フォントコレクションオブジェクトへのポインターです。NULL の場合、システムフォントコレクションを示します。 |
| fontWeight | DWRITE_FONT_WEIGHT | in | このメソッドで作成されるテキストオブジェクトのフォントの太さ(ウェイト)を示す値です。 |
| fontStyle | DWRITE_FONT_STYLE | in | このメソッドで作成されるテキストオブジェクトのフォントスタイルを示す値です。 |
| fontStretch | DWRITE_FONT_STRETCH | in | このメソッドで作成されるテキストオブジェクトのフォントの伸縮(ストレッチ)を示す値です。 |
| fontSize | FLOAT | in | フォントの論理サイズ(DIP(「デバイス非依存ピクセル」)単位)です。1 DIP は 1/96 インチに相当します。 |
| localeName | LPWSTR | in | ロケール名を含む文字配列です。 |
| textFormat | IDWriteTextFormat** | out | このメソッドが返るとき、新しく作成されたテキストフォーマットオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
テキストレイアウトで使用するタイポグラフィオブジェクトを作成します。
| typography | IDWriteTypography** | out | このメソッドが返るとき、新しく作成されたタイポグラフィオブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
GDI との相互運用に使用するオブジェクトを作成します。
| gdiInterop | IDWriteGdiInterop** | out | このメソッドが返るとき、成功した場合は GDI 相互運用オブジェクトへのポインターのアドレスが格納されます。失敗した場合は NULL が格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
文字列、テキストフォーマット、および関連する制約を受け取り、完全に解析および整形された結果を表すオブジェクトを生成します。
| string | LPWSTR | in | 新しい IDWriteTextLayout オブジェクトを作成する元となる文字列を含む文字配列です。この配列の長さは stringLength でなければならず、埋め込みの NULL 文字を含むことができます。 |
| stringLength | DWORD | in | 文字列に含まれる文字数です。 |
| textFormat | IDWriteTextFormat* | in | 文字列に適用するフォーマットを示すオブジェクトへのポインターです。 |
| maxWidth | FLOAT | in | レイアウトボックスの幅です。 |
| maxHeight | FLOAT | in | レイアウトボックスの高さです。 |
| textLayout | IDWriteTextLayout** | out | このメソッドが返るとき、生成されたテキストレイアウトオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
文字列、フォーマット、および関連する制約を受け取り、特定の表示解像度と測定モードに合わせて整形された結果を表すオブジェクトを生成します。
| string | LPWSTR | in | 新しい IDWriteTextLayout オブジェクトを作成する元となる文字列を含む文字配列です。この配列の長さは stringLength でなければならず、埋め込みの NULL 文字を含むことができます。 |
| stringLength | DWORD | in | 文字列の長さ(文字数)です。 |
| textFormat | IDWriteTextFormat* | in | 文字列に適用するテキストフォーマットオブジェクトです。 |
| layoutWidth | FLOAT | in | レイアウトボックスの幅です。 |
| layoutHeight | FLOAT | in | レイアウトボックスの高さです。 |
| pixelsPerDip | FLOAT | in | DIP(デバイス非依存ピクセル)あたりの物理ピクセル数です。たとえば、96 DPI のデバイスにレンダリングする場合、pixelsPerDip は 1 です。120 DPI のデバイスにレンダリングする場合、pixelsPerDip は 1.25(120/96)です。 |
| transform | DWRITE_MATRIX* | inoptional | グリフとその位置に適用される省略可能な変換です。この変換は、フォントサイズと DIP あたりのピクセル数によるスケーリングの後に適用されます。 |
| useGdiNatural | BOOL | in | FALSE に設定すると、テキストレイアウトは GDI の 2 値(bi-level)テキストと同じメトリックを使用します。TRUE に設定すると、テキストレイアウトは CLEARTYPE_NATURAL_QUALITY で作成したフォントを使用して GDI が測定したテキストと同じメトリックを使用します。 |
| textLayout | IDWriteTextLayout** | out | このメソッドが返るとき、生成されたテキストレイアウトオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
生成されたテキストレイアウトは、意図した解像度でのみ使用すべきです。テキストのスケーラビリティが必要な場合は、代わりに CreateTextLayout を使用してください。
省略記号(...)を省略のしるしとして使用する、トリミング用のインラインオブジェクトを作成します。
| textFormat | IDWriteTextFormat* | in | テキストレイアウトに使用する、CreateTextFormat で作成されたテキストフォーマットオブジェクトです。 |
| trimmingSign | IDWriteInlineObject** | out | このメソッドが返るとき、このメソッドによって作成された省略(すなわち省略記号によるトリミング)のしるしへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
省略記号は、ベースフォント、スタイル、および各種効果を含むフォーマットの現在の設定を使用して作成されます。別の省略のしるしは、IDWriteInlineObject を実装することでアプリケーション側で作成できます。
テキスト解析を実行するためのインターフェイスを返します。
| textAnalyzer | IDWriteTextAnalyzer** | out | このメソッドが返るとき、新しく作成されたテキストアナライザーオブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ロケール名、置換方法、およびユーザーによる上書きを無視するかどうか(無視する場合は、指定したカルチャに対する NLS の既定値を使用する)を示すフラグを使用して、数字置換オブジェクトを作成します。
| substitutionMethod | DWRITE_NUMBER_SUBSTITUTION_METHOD | in | 数字および関連する句読点に対して数字置換をどのように適用するかを指定する値です。 |
| localeName | LPWSTR | in | numberSubstitution オブジェクトで使用するロケールの名前です。 |
| ignoreUserOverride | BOOL | in | ユーザーによる上書きを無視するかどうかを示すブール値のフラグです。 |
| numberSubstitution | IDWriteNumberSubstitution** | out | このメソッドが返るとき、このメソッドによって作成された数字置換オブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
グリフランのレンダリングに使用される情報をカプセル化する、グリフラン解析オブジェクトを作成します。(IDWriteFactory.CreateGlyphRunAnalysis)
| glyphRun | DWRITE_GLYPH_RUN* | in | グリフランのプロパティ(フォントフェイス、送り幅(advance)など)を含む構造体です。 |
| pixelsPerDip | FLOAT | in | DIP(デバイス非依存ピクセル)あたりの物理ピクセル数です。たとえば、96 DPI のビットマップにレンダリングする場合、pixelsPerDip は 1 です。120 DPI のビットマップにレンダリングする場合、pixelsPerDip は 1.25 です。 |
| transform | DWRITE_MATRIX* | inoptional | グリフとその位置に適用される省略可能な変換です。この変換は、emSize と pixelsPerDip によるスケーリングの後に適用されます。 |
| renderingMode | DWRITE_RENDERING_MODE | in | レンダリングモードを指定する値です。ラスターレンダリングモードのいずれか(すなわち、既定でもアウトラインでもないもの)でなければなりません。 |
| measuringMode | DWRITE_MEASURING_MODE | in | グリフに使用する測定モードを指定します。 |
| baselineOriginX | FLOAT | in | ベースライン原点の水平位置(X 座標)です(DIP 単位)。 |
| baselineOriginY | FLOAT | in | ベースライン原点の垂直位置(Y 座標)です(DIP 単位)。 |
| glyphRunAnalysis | IDWriteGlyphRunAnalysis** | out | このメソッドが返るとき、新しく作成されたグリフラン解析オブジェクトへのポインターのアドレスが格納されます。 |
戻り値
Type: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
グリフラン解析オブジェクトには、すべてのグリフの位置や、フォントキャッシュ内のラスタライズ済みのすべてのグリフへの参照を含む、グリフランの解析結果が格納されます。
例
次のコード例は、グリフラン解析オブジェクトを作成する方法を示します。この例では、空のグリフランを使用しています。
HRESULT CreateGlyphRunAnalysis(IDWriteFontFace *pFontFace, IDWriteGlyphRunAnalysis **ppGlyphRunAnalysis)
{
HRESULT hr = S_OK;
IDWriteFactory* pDWriteFactory = NULL;
// Create the DirectWrite factory.
hr = DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED,
__uuidof(IDWriteFactory),
reinterpret_cast<IUnknown**>(&pDWriteFactory)
);
DWRITE_GLYPH_RUN emptyGlyphRun = { 0 };
UINT16 glyphIndex = 0;
emptyGlyphRun.fontFace = pFontFace;
emptyGlyphRun.glyphIndices = &glyphIndex;
emptyGlyphRun.glyphCount = 0;
emptyGlyphRun.fontEmSize = 12;
IDWriteGlyphRunAnalysis* pGlyphRunAnalysis = NULL;
if (SUCCEEDED(hr))
{
hr = pDWriteFactory->CreateGlyphRunAnalysis(
&emptyGlyphRun,
1.0f, // pixelsPerDip,
NULL, // transform,
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC,
DWRITE_MEASURING_MODE_GDI_CLASSIC,
0.0f, // baselineOriginX,
0.0f, // baselineOriginY,
&pGlyphRunAnalysis);
}
*ppGlyphRunAnalysis = pGlyphRunAnalysis;
SafeRelease(&pDWriteFactory);
return S_OK;
}
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFactory "{B859EE5A-D838-4B5B-A2E8-1ADC7D93DB48}" #usecom global IDWriteFactory IID_IDWriteFactory "{}" #comfunc global IDWriteFactory_GetSystemFontCollection 3 sptr,int #comfunc global IDWriteFactory_CreateCustomFontCollection 4 sptr,sptr,int,sptr #comfunc global IDWriteFactory_RegisterFontCollectionLoader 5 sptr #comfunc global IDWriteFactory_UnregisterFontCollectionLoader 6 sptr #comfunc global IDWriteFactory_CreateFontFileReference 7 wstr,var,sptr #comfunc global IDWriteFactory_CreateCustomFontFileReference 8 sptr,int,sptr,sptr #comfunc global IDWriteFactory_CreateFontFace 9 int,int,sptr,int,int,sptr #comfunc global IDWriteFactory_CreateRenderingParams 10 sptr #comfunc global IDWriteFactory_CreateMonitorRenderingParams 11 sptr,sptr #comfunc global IDWriteFactory_CreateCustomRenderingParams 12 float,float,float,int,int,sptr #comfunc global IDWriteFactory_RegisterFontFileLoader 13 sptr #comfunc global IDWriteFactory_UnregisterFontFileLoader 14 sptr #comfunc global IDWriteFactory_CreateTextFormat 15 wstr,sptr,int,int,int,float,wstr,sptr #comfunc global IDWriteFactory_CreateTypography 16 sptr #comfunc global IDWriteFactory_GetGdiInterop 17 sptr #comfunc global IDWriteFactory_CreateTextLayout 18 wstr,int,sptr,float,float,sptr #comfunc global IDWriteFactory_CreateGdiCompatibleTextLayout 19 wstr,int,sptr,float,float,float,var,int,sptr #comfunc global IDWriteFactory_CreateEllipsisTrimmingSign 20 sptr,sptr #comfunc global IDWriteFactory_CreateTextAnalyzer 21 sptr #comfunc global IDWriteFactory_CreateNumberSubstitution 22 int,wstr,int,sptr #comfunc global IDWriteFactory_CreateGlyphRunAnalysis 23 var,float,var,int,int,float,float,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFactory "{B859EE5A-D838-4B5B-A2E8-1ADC7D93DB48}" #usecom global IDWriteFactory IID_IDWriteFactory "{}" #comfunc global IDWriteFactory_GetSystemFontCollection 3 sptr,int #comfunc global IDWriteFactory_CreateCustomFontCollection 4 sptr,sptr,int,sptr #comfunc global IDWriteFactory_RegisterFontCollectionLoader 5 sptr #comfunc global IDWriteFactory_UnregisterFontCollectionLoader 6 sptr #comfunc global IDWriteFactory_CreateFontFileReference 7 wstr,sptr,sptr #comfunc global IDWriteFactory_CreateCustomFontFileReference 8 sptr,int,sptr,sptr #comfunc global IDWriteFactory_CreateFontFace 9 int,int,sptr,int,int,sptr #comfunc global IDWriteFactory_CreateRenderingParams 10 sptr #comfunc global IDWriteFactory_CreateMonitorRenderingParams 11 sptr,sptr #comfunc global IDWriteFactory_CreateCustomRenderingParams 12 float,float,float,int,int,sptr #comfunc global IDWriteFactory_RegisterFontFileLoader 13 sptr #comfunc global IDWriteFactory_UnregisterFontFileLoader 14 sptr #comfunc global IDWriteFactory_CreateTextFormat 15 wstr,sptr,int,int,int,float,wstr,sptr #comfunc global IDWriteFactory_CreateTypography 16 sptr #comfunc global IDWriteFactory_GetGdiInterop 17 sptr #comfunc global IDWriteFactory_CreateTextLayout 18 wstr,int,sptr,float,float,sptr #comfunc global IDWriteFactory_CreateGdiCompatibleTextLayout 19 wstr,int,sptr,float,float,float,sptr,int,sptr #comfunc global IDWriteFactory_CreateEllipsisTrimmingSign 20 sptr,sptr #comfunc global IDWriteFactory_CreateTextAnalyzer 21 sptr #comfunc global IDWriteFactory_CreateNumberSubstitution 22 int,wstr,int,sptr #comfunc global IDWriteFactory_CreateGlyphRunAnalysis 23 sptr,float,sptr,int,int,float,float,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。