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

ISyncChangeBatch

COM
IID70c64dee-380f-4c2e-8f70-31c55bd5f9b3継承元ISyncChangeBatchBase自前メソッド開始 vtbl17

公式ドキュメント

変更のセットに関するメタデータを表します。(ISyncChangeBatch)

解説(Remarks)

変更バッチは、アイテムの変更に関するメタデータをソースプロバイダーから宛先プロバイダーへ伝達するために、同期プロバイダーによって使用されます。ソースプロバイダーは変更を列挙し、指定された数の変更を変更バッチに追加します。その後、変更バッチは宛先プロバイダーへ送信されます。宛先プロバイダーは、変更バッチ内の変更を列挙し、自身のアイテムストアに適用します。

メソッド 3

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

vtbl 17 HRESULT BeginUnorderedGroup()

変更バッチ内で順序なしグループを開きます。このグループ内のアイテムの変更は、任意の順序で並べることができます。

戻り値

戻り値には、次の表に示す値が含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
SYNC_E_INVALID_OPERATION
既にグループが開かれているか、空のグループが以前にバッチへ追加されています。
SYNC_E_CHANGE_BATCH_IS_READ_ONLY

解説(Remarks)

このメソッドの呼び出し後に変更バッチへ追加されたアイテムの変更は、開いているグループに追加されます。

グループが開かれるまで、アイテムの変更を変更バッチに追加することはできません。

vtbl 18 HRESULT EndUnorderedGroup(ISyncKnowledge* pMadeWithKnowledge, BOOL fAllChangesForKnowledge)

変更バッチ内で以前に開いた順序なしグループを閉じます。

pMadeWithKnowledgeISyncKnowledge*inグループ内の変更に対する made-with ナレッジ。通常は、このグループを作成したレプリカのナレッジです。
fAllChangesForKnowledgeBOOLinpMadeWithKnowledge に含まれるすべての変更がこの変更バッチに含まれている場合は TRUE、それ以外の場合は FALSE です。

戻り値

戻り値には、次の表に示す値が含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
SYNC_E_INVALID_OPERATION
開いているグループが存在しないか、順序付きグループが開かれています。
SYNC_E_CHANGE_BATCH_IS_READ_ONLY
vtbl 19 HRESULT AddLoggedConflict(BYTE* pbOwnerReplicaId, BYTE* pbItemId, SYNC_VERSION* pChangeVersion, SYNC_VERSION* pCreationVersion, DWORD dwFlags, DWORD dwWorkForChange, ISyncKnowledge* pConflictKnowledge, ISyncChangeBuilder** ppChangeBuilder)

競合を表すメタデータを変更バッチに追加します。

pbOwnerReplicaIdBYTE*in競合している変更を行ったレプリカの ID。
pbItemIdBYTE*inアイテムの ID。
pChangeVersionSYNC_VERSION*in変更のバージョン。
pCreationVersionSYNC_VERSION*inアイテムの作成バージョン。
dwFlagsDWORDinアイテムの変更の状態を指定するフラグ。SYNC_CHANGE_FLAG の値については、ISyncChange::GetFlags メソッドの「解説」セクションを参照してください。
dwWorkForChangeDWORDin変更に対する作業量の見積もり。この値は、変更の適用中に、完了した作業をアプリケーションへ報告するために使用されます。
pConflictKnowledgeISyncKnowledge*in競合がログに記録されたときに保存された競合ナレッジ。
ppChangeBuilderISyncChangeBuilder**out変更に変更単位 (change unit) の情報を追加するために使用できるオブジェクトを返します。

戻り値

戻り値には、次の表に示す値が含まれますが、これらに限定されません。

戻り値 説明
S_OK
メソッドは成功しました。
E_POINTER
SYNC_E_CHANGE_BATCH_IS_READ_ONLY

解説(Remarks)

変更バッチに追加された競合は、グループには追加されません。競合を変更バッチに追加するために、グループを開いておく必要はありません。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_ISyncChangeBatch "{70C64DEE-380F-4C2E-8F70-31C55BD5F9B3}"
#usecom global ISyncChangeBatch IID_ISyncChangeBatch "{}"
#comfunc global ISyncChangeBatch_BeginUnorderedGroup  17
#comfunc global ISyncChangeBatch_EndUnorderedGroup    18 sptr,int
#comfunc global ISyncChangeBatch_AddLoggedConflict    19 var,var,var,var,int,int,sptr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。