ISyncChangeBatch
COM公式ドキュメント
変更のセットに関するメタデータを表します。(ISyncChangeBatch)
解説(Remarks)
変更バッチは、アイテムの変更に関するメタデータをソースプロバイダーから宛先プロバイダーへ伝達するために、同期プロバイダーによって使用されます。ソースプロバイダーは変更を列挙し、指定された数の変更を変更バッチに追加します。その後、変更バッチは宛先プロバイダーへ送信されます。宛先プロバイダーは、変更バッチ内の変更を列挙し、自身のアイテムストアに適用します。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
変更バッチ内で順序なしグループを開きます。このグループ内のアイテムの変更は、任意の順序で並べることができます。
戻り値
戻り値には、次の表に示す値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
既にグループが開かれているか、空のグループが以前にバッチへ追加されています。 |
|
解説(Remarks)
このメソッドの呼び出し後に変更バッチへ追加されたアイテムの変更は、開いているグループに追加されます。
グループが開かれるまで、アイテムの変更を変更バッチに追加することはできません。
変更バッチ内で以前に開いた順序なしグループを閉じます。
| pMadeWithKnowledge | ISyncKnowledge* | in | グループ内の変更に対する made-with ナレッジ。通常は、このグループを作成したレプリカのナレッジです。 |
| fAllChangesForKnowledge | BOOL | in | pMadeWithKnowledge に含まれるすべての変更がこの変更バッチに含まれている場合は TRUE、それ以外の場合は FALSE です。 |
戻り値
戻り値には、次の表に示す値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
開いているグループが存在しないか、順序付きグループが開かれています。 |
|
競合を表すメタデータを変更バッチに追加します。
| pbOwnerReplicaId | BYTE* | in | 競合している変更を行ったレプリカの ID。 |
| pbItemId | BYTE* | in | アイテムの ID。 |
| pChangeVersion | SYNC_VERSION* | in | 変更のバージョン。 |
| pCreationVersion | SYNC_VERSION* | in | アイテムの作成バージョン。 |
| dwFlags | DWORD | in | アイテムの変更の状態を指定するフラグ。SYNC_CHANGE_FLAG の値については、ISyncChange::GetFlags メソッドの「解説」セクションを参照してください。 |
| dwWorkForChange | DWORD | in | 変更に対する作業量の見積もり。この値は、変更の適用中に、完了した作業をアプリケーションへ報告するために使用されます。 |
| pConflictKnowledge | ISyncKnowledge* | in | 競合がログに記録されたときに保存された競合ナレッジ。 |
| ppChangeBuilder | ISyncChangeBuilder** | out | 変更に変更単位 (change unit) の情報を追加するために使用できるオブジェクトを返します。 |
戻り値
戻り値には、次の表に示す値が含まれますが、これらに限定されません。
| 戻り値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
|
解説(Remarks)
変更バッチに追加された競合は、グループには追加されません。競合を変更バッチに追加するために、グループを開いておく必要はありません。
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 指定が可能。#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 sptr,sptr,sptr,sptr,int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。