ISyncChangeBatchWithPrerequisite
COM公式ドキュメント
変更バッチに関連付けられた前提条件ナレッジ (prerequisite knowledge) に基づく、変更バッチのメタデータを表します。
解説(Remarks)
ISyncChangeBatchWithPrerequisite オブジェクトは、ISyncChangeBatchBase オブジェクトの QueryInterface メソッドに IID_ISyncChangeBatchWithPrerequisite を渡すことで取得できます。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
この変更バッチを処理するために宛先プロバイダーが備えている必要がある、最小限のナレッジを設定します。
| pPrerequisiteKnowledge | ISyncKnowledge* | in | この変更バッチを処理するために宛先プロバイダーが備えている必要がある、最小限のナレッジです。 |
戻り値
変更バッチの前提条件ナレッジに基づいて、宛先プロバイダーがこの変更バッチ内のすべての変更を適用したときに宛先レプリカが習得するナレッジを取得します。
| pDestinationKnowledge | ISyncKnowledge* | in | ナレッジフラグメントは、pDestinationKnowledge がそのフラグメントの前提条件ナレッジを含んでいる場合にのみ、返される習得済みナレッジに追加されます。 |
| ppLearnedWithPrerequisiteKnowledge | ISyncKnowledge** | out | 変更バッチの前提条件ナレッジに基づいて、宛先プロバイダーがこの変更バッチ内のすべての変更を適用したときに宛先レプリカが習得するナレッジです。 |
戻り値
解説(Remarks)
ppLearnedWithPrerequisiteKnowledge で返されるナレッジは、変更バッチの習得済みナレッジの ISyncKnowledge2::ProjectOntoKnowledgeWithPrerequisite メソッドを、pDestinationKnowledge をテンプレートナレッジとして渡して呼び出すことで計算されます。
リカバリー同期の実行中に、宛先プロバイダーがこの変更バッチ内のすべての変更を適用したときに宛先レプリカが習得する、忘却ナレッジ (forgotten knowledge) を取得します。
| ppLearnedForgottenKnowledge | IForgottenKnowledge** | out | リカバリー同期の実行中に、宛先プロバイダーがこの変更バッチ内のすべての変更を適用したときに宛先レプリカが習得する忘却ナレッジを返します。 |
戻り値
返される可能性のあるコードには、次の表に示す値が含まれます (ただし、これらに限定されません)。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ポインターが無効です。 | |
|
変更バッチオブジェクトが ISyncFullEnumerationChangeBatch オブジェクトではありません。 |
解説(Remarks)
ppLearnedForgottenKnowledge で返されるナレッジは、変更バッチのソース忘却ナレッジを、その変更バッチに含まれる範囲に射影したものです。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISyncChangeBatchWithPrerequisite "{097F13BE-5B92-4048-B3F2-7B42A2515E07}"
#usecom global ISyncChangeBatchWithPrerequisite IID_ISyncChangeBatchWithPrerequisite "{}"
#comfunc global ISyncChangeBatchWithPrerequisite_SetPrerequisiteKnowledge 17 sptr
#comfunc global ISyncChangeBatchWithPrerequisite_GetLearnedKnowledgeWithPrerequisite 18 sptr,sptr
#comfunc global ISyncChangeBatchWithPrerequisite_GetLearnedForgottenKnowledge 19 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。