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

IKnowledgeSyncProvider

COM
IID43434a49-8da4-47f2-8172-ad7b8b024978継承元ISyncProvider自前メソッド開始 vtbl4

メソッド 7

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

vtbl 4 HRESULT BeginSession(SYNC_PROVIDER_ROLE role, ISyncSessionState* pSessionState)
roleSYNC_PROVIDER_ROLEinこのプロバイダが同期セッションで担う役割 (SYNC_PROVIDER_ROLE、ソースまたはデスティネーション) を指定する。
pSessionStateISyncSessionState*in開始する同期セッションの状態オブジェクト (ISyncSessionState) へのポインタである。
vtbl 5 HRESULT GetSyncBatchParameters(ISyncKnowledge** ppSyncKnowledge, DWORD* pdwRequestedBatchSize)
ppSyncKnowledgeISyncKnowledge**outデスティネーションの現在のナレッジ (ISyncKnowledge) を受け取る出力ポインタである。
pdwRequestedBatchSizeDWORD*inout1 バッチあたりに要求する変更件数を受け取るポインタである。
vtbl 6 HRESULT GetChangeBatch(DWORD dwBatchSize, ISyncKnowledge* pSyncKnowledge, ISyncChangeBatch** ppSyncChangeBatch, IUnknown** ppUnkDataRetriever)
dwBatchSizeDWORDin取得する 1 バッチあたりの変更件数を指定する。
pSyncKnowledgeISyncKnowledge*inデスティネーション側のナレッジ (ISyncKnowledge) へのポインタである。
ppSyncChangeBatchISyncChangeBatch**out列挙された変更バッチ (ISyncChangeBatch) を受け取る出力ポインタである。
ppUnkDataRetrieverIUnknown**out変更に対応するアイテム データを取得するためのデータ取得オブジェクトを受け取る出力ポインタである。
vtbl 7 HRESULT GetFullEnumerationChangeBatch(DWORD dwBatchSize, BYTE* pbLowerEnumerationBound, ISyncKnowledge* pSyncKnowledge, ISyncFullEnumerationChangeBatch** ppSyncChangeBatch, IUnknown** ppUnkDataRetriever)
dwBatchSizeDWORDin取得する 1 バッチあたりの変更件数を指定する。
pbLowerEnumerationBoundBYTE*in完全列挙を開始する下限のアイテム識別子を指すバッファへのポインタである。
pSyncKnowledgeISyncKnowledge*inデスティネーション側のナレッジ (ISyncKnowledge) へのポインタである。
ppSyncChangeBatchISyncFullEnumerationChangeBatch**out列挙された完全列挙変更バッチ (ISyncFullEnumerationChangeBatch) を受け取る出力ポインタである。
ppUnkDataRetrieverIUnknown**out変更に対応するアイテム データを取得するためのデータ取得オブジェクトを受け取る出力ポインタである。
vtbl 8 HRESULT ProcessChangeBatch(CONFLICT_RESOLUTION_POLICY resolutionPolicy, ISyncChangeBatch* pSourceChangeBatch, IUnknown* pUnkDataRetriever, ISyncCallback* pCallback, SYNC_SESSION_STATISTICS* pSyncSessionStatistics)
resolutionPolicyCONFLICT_RESOLUTION_POLICYin競合解決ポリシー (CONFLICT_RESOLUTION_POLICY) を指定する。
pSourceChangeBatchISyncChangeBatch*in適用対象となるソース側の変更バッチ (ISyncChangeBatch) へのポインタである。
pUnkDataRetrieverIUnknown*inソースのアイテム データを取得するためのデータ取得オブジェクトへのポインタである。
pCallbackISyncCallback*in適用処理中のイベント通知を受け取るコールバック (ISyncCallback) へのポインタである。
pSyncSessionStatisticsSYNC_SESSION_STATISTICS*inout同期セッションの統計情報 (SYNC_SESSION_STATISTICS) を受け取るポインタである。
vtbl 9 HRESULT ProcessFullEnumerationChangeBatch(CONFLICT_RESOLUTION_POLICY resolutionPolicy, ISyncFullEnumerationChangeBatch* pSourceChangeBatch, IUnknown* pUnkDataRetriever, ISyncCallback* pCallback, SYNC_SESSION_STATISTICS* pSyncSessionStatistics)
resolutionPolicyCONFLICT_RESOLUTION_POLICYin競合解決ポリシー (CONFLICT_RESOLUTION_POLICY) を指定する。
pSourceChangeBatchISyncFullEnumerationChangeBatch*in適用対象となるソース側の完全列挙変更バッチ (ISyncFullEnumerationChangeBatch) へのポインタである。
pUnkDataRetrieverIUnknown*inソースのアイテム データを取得するためのデータ取得オブジェクトへのポインタである。
pCallbackISyncCallback*in適用処理中のイベント通知を受け取るコールバック (ISyncCallback) へのポインタである。
pSyncSessionStatisticsSYNC_SESSION_STATISTICS*inout同期セッションの統計情報 (SYNC_SESSION_STATISTICS) を受け取るポインタである。
vtbl 10 HRESULT EndSession(ISyncSessionState* pSessionState)
pSessionStateISyncSessionState*in終了する同期セッションの状態オブジェクト (ISyncSessionState) へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_IKnowledgeSyncProvider "{43434A49-8DA4-47F2-8172-AD7B8B024978}"
#usecom global IKnowledgeSyncProvider IID_IKnowledgeSyncProvider "{}"
#comfunc global IKnowledgeSyncProvider_BeginSession                       4 int,sptr
#comfunc global IKnowledgeSyncProvider_GetSyncBatchParameters             5 sptr,var
#comfunc global IKnowledgeSyncProvider_GetChangeBatch                     6 int,sptr,sptr,sptr
#comfunc global IKnowledgeSyncProvider_GetFullEnumerationChangeBatch      7 int,var,sptr,sptr,sptr
#comfunc global IKnowledgeSyncProvider_ProcessChangeBatch                 8 int,sptr,sptr,sptr,var
#comfunc global IKnowledgeSyncProvider_ProcessFullEnumerationChangeBatch  9 int,sptr,sptr,sptr,var
#comfunc global IKnowledgeSyncProvider_EndSession                         10 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。