Win32 API 日本語リファレンス
ホームUI.TextServices › ITfPropertyStore

ITfPropertyStore

COM
IID6834b120-88cb-11d2-bf45-00105a2799b5継承元IUnknown自前メソッド開始 vtbl3

メソッド 9

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetType(GUID* pguid)
pguidGUID*outこのプロパティストアが扱うプロパティの種類を識別する GUID を受け取るポインタである。
vtbl 4 HRESULT GetDataType(DWORD* pdwReserved)
pdwReservedDWORD*out予約済みであり、データ型を示す値を受け取るポインタである。
vtbl 5 HRESULT GetData(VARIANT* pvarValue)
pvarValueVARIANT*outこのプロパティストアが保持するプロパティ値を受け取る VARIANT へのポインタである。
vtbl 6 HRESULT OnTextUpdated(DWORD dwFlags, ITfRange* pRangeNew, BOOL* pfAccept)
dwFlagsDWORDinテキスト更新の種類を示すフラグを指定する。
pRangeNewITfRange*in更新後の新しいテキスト範囲を示す ITfRange へのポインタである。
pfAcceptBOOL*out更新後もプロパティ値を保持するか (受理するか) 否かを受け取るポインタである。
vtbl 7 HRESULT Shrink(ITfRange* pRangeNew, BOOL* pfFree)
pRangeNewITfRange*in縮小後にプロパティが占める新しい範囲を示す ITfRange へのポインタである。
pfFreeBOOL*outプロパティが範囲を持たなくなり解放可能か否かを受け取るポインタである。
vtbl 8 HRESULT Divide(ITfRange* pRangeThis, ITfRange* pRangeNew, ITfPropertyStore** ppPropStore)
pRangeThisITfRange*in分割後にこのプロパティストアが保持する範囲を示す ITfRange へのポインタである。
pRangeNewITfRange*in分割により新たに切り出される範囲を示す ITfRange へのポインタである。
ppPropStoreITfPropertyStore**out分割された新しい範囲を担う ITfPropertyStore インターフェイスを受け取るポインタである。
vtbl 9 HRESULT Clone(ITfPropertyStore** pPropStore)
pPropStoreITfPropertyStore**outこのプロパティストアの複製を表す ITfPropertyStore インターフェイスを受け取るポインタである。
vtbl 10 HRESULT GetPropertyRangeCreator(GUID* pclsid)
pclsidGUID*outこのプロパティ範囲を生成するテキストサービスの CLSID を受け取るポインタである。
vtbl 11 HRESULT Serialize(IStream* pStream, DWORD* pcb)
pStreamIStream*inプロパティ値をシリアル化して書き込む先の IStream へのポインタである。
pcbDWORD*outストリームに書き込まれたバイト数を受け取るポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ITfPropertyStore "{6834B120-88CB-11D2-BF45-00105A2799B5}"
#usecom global ITfPropertyStore IID_ITfPropertyStore "{}"
#comfunc global ITfPropertyStore_GetType                  3 var
#comfunc global ITfPropertyStore_GetDataType              4 var
#comfunc global ITfPropertyStore_GetData                  5 var
#comfunc global ITfPropertyStore_OnTextUpdated            6 int,sptr,var
#comfunc global ITfPropertyStore_Shrink                   7 sptr,var
#comfunc global ITfPropertyStore_Divide                   8 sptr,sptr,sptr
#comfunc global ITfPropertyStore_Clone                    9 sptr
#comfunc global ITfPropertyStore_GetPropertyRangeCreator  10 var
#comfunc global ITfPropertyStore_Serialize                11 sptr,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。