IInkPresenterDesktop
COM公式ドキュメント
IInkPresenterDesktop オブジェクトは、構成可能で、従来型 Windows アプリの DirectComposition ビジュアルツリーに挿入できる InkPresenter を表します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
アプリの DirectComposition ビジュアルツリーへの接続を設定します。
| rootVisual | IUnknown* | in | アプリの DirectComposition ビジュアルツリー。 |
| device | IUnknown* | in | 既定のインクレンダリングを使用する場合は NULL。または、アプリの DirectComposition ビジュアルツリーへのインク入力のカスタム定着(ドライング)のために、保留中のすべての DirectComposition コマンドをコミットするために使用する IDCompositionDevice3 オブジェクト。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
保留中のすべての Microsoft DirectComposition コマンドをアプリの DirectComposition ビジュアルツリーにコミットする処理を、(IInkPresenterDesktop オブジェクトではなく)アプリが行えるようにする IInkCommitRequestHandler オブジェクトを設定します。
| handler | IInkCommitRequestHandler* | in | インク入力を処理する IInkCommitRequestHandler。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
InkPresenter オブジェクトのサイズを取得します。
| width | FLOAT* | out | オブジェクトの幅(DIP 単位)。 |
| height | FLOAT* | out | オブジェクトの高さ(DIP 単位)。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
InkPresenter オブジェクトのサイズを設定します。
| width | FLOAT | in | オブジェクトの幅(DIP 単位)。 |
| height | FLOAT | in | オブジェクトの高さ(DIP 単位)。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ハイコントラストの変更ハンドラーを指定します。このハンドラーは、ハイコントラストのシステム設定の変更を通知されます。
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IInkPresenterDesktop "{73F3C0D9-2E8B-48F3-895E-20CBD27B723B}" #usecom global IInkPresenterDesktop IID_IInkPresenterDesktop "{}" #comfunc global IInkPresenterDesktop_SetRootVisual 3 sptr,sptr #comfunc global IInkPresenterDesktop_SetCommitRequestHandler 4 sptr #comfunc global IInkPresenterDesktop_GetSize 5 var,var #comfunc global IInkPresenterDesktop_SetSize 6 float,float #comfunc global IInkPresenterDesktop_OnHighContrastChanged 7 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IInkPresenterDesktop "{73F3C0D9-2E8B-48F3-895E-20CBD27B723B}" #usecom global IInkPresenterDesktop IID_IInkPresenterDesktop "{}" #comfunc global IInkPresenterDesktop_SetRootVisual 3 sptr,sptr #comfunc global IInkPresenterDesktop_SetCommitRequestHandler 4 sptr #comfunc global IInkPresenterDesktop_GetSize 5 sptr,sptr #comfunc global IInkPresenterDesktop_SetSize 6 float,float #comfunc global IInkPresenterDesktop_OnHighContrastChanged 7 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。