Win32 API 日本語リファレンス
ホームSystem.WindowsSync › IFilterKeyMap

IFilterKeyMap

COM
IIDca169652-07c6-4708-a3da-6e4eba8d2297継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT GetCount(DWORD* pdwCount)
pdwCountDWORD*inoutフィルターキーマップに含まれるフィルターの個数を受け取る DWORD へのポインタである。
vtbl 4 HRESULT AddFilter(ISyncFilter* pISyncFilter, DWORD* pdwFilterKey)
pISyncFilterISyncFilter*inマップに追加する同期フィルターを表す ISyncFilter インターフェイスへのポインタである。
pdwFilterKeyDWORD*inout追加したフィルターに割り当てられたフィルターキーを受け取る DWORD へのポインタである。
vtbl 5 HRESULT GetFilter(DWORD dwFilterKey, ISyncFilter** ppISyncFilter)
dwFilterKeyDWORDin取得対象のフィルターを識別するフィルターキーを指定する。
ppISyncFilterISyncFilter**out指定したキーに対応する同期フィルターを受け取る ISyncFilter インターフェイスポインタのアドレスである。
vtbl 6 HRESULT Serialize(BYTE* pbFilterKeyMap, DWORD* pcbFilterKeyMap)
pbFilterKeyMapBYTE*inoutシリアライズ結果を書き込むバイトバッファへのポインタである。NULL を渡すと必要なバイト数のみを問い合わせできる。
pcbFilterKeyMapDWORD*inout入力ではバッファのサイズ(バイト数)を、出力では実際に書き込まれた(または必要な)バイト数を受け取る DWORD へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IFilterKeyMap "{CA169652-07C6-4708-A3DA-6E4EBA8D2297}"
#usecom global IFilterKeyMap IID_IFilterKeyMap "{}"
#comfunc global IFilterKeyMap_GetCount   3 var
#comfunc global IFilterKeyMap_AddFilter  4 sptr,var
#comfunc global IFilterKeyMap_GetFilter  5 int,sptr
#comfunc global IFilterKeyMap_Serialize  6 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。