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

ISyncChangeBatchBase

COM
IID52f6e694-6a71-4494-a184-a8311bf5d227継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

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

vtbl 3 HRESULT GetChangeEnumerator(IEnumSyncChanges** ppEnum)
ppEnumIEnumSyncChanges**outこのバッチ内の変更を列挙する列挙子 (IEnumSyncChanges) を受け取る出力ポインタである。
vtbl 4 HRESULT GetIsLastBatch(BOOL* pfLastBatch)
pfLastBatchBOOL*inoutこのバッチが同期セッションの最後のバッチかどうかを受け取る真偽値ポインタである。
vtbl 5 HRESULT GetWorkEstimateForBatch(DWORD* pdwWorkForBatch)
pdwWorkForBatchDWORD*inoutこのバッチの処理に要する作業量の見積もりを受け取るポインタである。
vtbl 6 HRESULT GetRemainingWorkEstimateForSession(DWORD* pdwRemainingWorkForSession)
pdwRemainingWorkForSessionDWORD*inout同期セッション全体で残っている作業量の見積もりを受け取るポインタである。
vtbl 7 HRESULT BeginOrderedGroup(BYTE* pbLowerBound)
pbLowerBoundBYTE*in順序付きグループの下限となるアイテム識別子を指すバッファへのポインタである。
vtbl 8 HRESULT EndOrderedGroup(BYTE* pbUpperBound, ISyncKnowledge* pMadeWithKnowledge)
pbUpperBoundBYTE*in順序付きグループの上限となるアイテム識別子を指すバッファへのポインタである。
pMadeWithKnowledgeISyncKnowledge*inこのグループが作成された時点のナレッジ (ISyncKnowledge) へのポインタである。
vtbl 9 HRESULT AddItemMetadataToGroup(BYTE* pbOwnerReplicaId, BYTE* pbItemId, SYNC_VERSION* pChangeVersion, SYNC_VERSION* pCreationVersion, DWORD dwFlags, DWORD dwWorkForChange, ISyncChangeBuilder** ppChangeBuilder)
pbOwnerReplicaIdBYTE*inアイテムを所有するレプリカの識別子を指すバッファへのポインタである。
pbItemIdBYTE*in追加するアイテムの識別子を指すバッファへのポインタである。
pChangeVersionSYNC_VERSION*inアイテムの変更バージョン (SYNC_VERSION) へのポインタである。
pCreationVersionSYNC_VERSION*inアイテムの作成バージョン (SYNC_VERSION) へのポインタである。
dwFlagsDWORDin変更に関するフラグ(削除を示すフラグ等)を指定する。
dwWorkForChangeDWORDinこの変更の処理に要する作業量を指定する。
ppChangeBuilderISyncChangeBuilder**out追加した変更にメタデータを設定するためのビルダー (ISyncChangeBuilder) を受け取る出力ポインタである。
vtbl 10 HRESULT GetLearnedKnowledge(ISyncKnowledge** ppLearnedKnowledge)
ppLearnedKnowledgeISyncKnowledge**outこのバッチの適用により習得される(学習する)ナレッジ (ISyncKnowledge) を受け取る出力ポインタである。
vtbl 11 HRESULT GetPrerequisiteKnowledge(ISyncKnowledge** ppPrerequisteKnowledge)
ppPrerequisteKnowledgeISyncKnowledge**outこのバッチを適用する前提条件となるナレッジ (ISyncKnowledge) を受け取る出力ポインタである。
vtbl 12 HRESULT GetSourceForgottenKnowledge(IForgottenKnowledge** ppSourceForgottenKnowledge)
ppSourceForgottenKnowledgeIForgottenKnowledge**outソース レプリカの忘却ナレッジ (IForgottenKnowledge) を受け取る出力ポインタである。
vtbl 13 HRESULT SetLastBatch()
vtbl 14 HRESULT SetWorkEstimateForBatch(DWORD dwWorkForBatch)
dwWorkForBatchDWORDinこのバッチの処理に要する作業量の見積もりを指定する。
vtbl 15 HRESULT SetRemainingWorkEstimateForSession(DWORD dwRemainingWorkForSession)
dwRemainingWorkForSessionDWORDin同期セッション全体で残っている作業量の見積もりを指定する。
vtbl 16 HRESULT Serialize(BYTE* pbChangeBatch, DWORD* pcbChangeBatch)
pbChangeBatchBYTE*inoutシリアル化された変更バッチのバイト列を受け取るバッファへのポインタである。NULL を渡すと必要なサイズのみを取得できる。
pcbChangeBatchDWORD*inout入力時はバッファのバイト数を指定し、出力時は実際に必要なバイト数を受け取るポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ISyncChangeBatchBase "{52F6E694-6A71-4494-A184-A8311BF5D227}"
#usecom global ISyncChangeBatchBase IID_ISyncChangeBatchBase "{}"
#comfunc global ISyncChangeBatchBase_GetChangeEnumerator                 3 sptr
#comfunc global ISyncChangeBatchBase_GetIsLastBatch                      4 var
#comfunc global ISyncChangeBatchBase_GetWorkEstimateForBatch             5 var
#comfunc global ISyncChangeBatchBase_GetRemainingWorkEstimateForSession  6 var
#comfunc global ISyncChangeBatchBase_BeginOrderedGroup                   7 var
#comfunc global ISyncChangeBatchBase_EndOrderedGroup                     8 var,sptr
#comfunc global ISyncChangeBatchBase_AddItemMetadataToGroup              9 var,var,var,var,int,int,sptr
#comfunc global ISyncChangeBatchBase_GetLearnedKnowledge                 10 sptr
#comfunc global ISyncChangeBatchBase_GetPrerequisiteKnowledge            11 sptr
#comfunc global ISyncChangeBatchBase_GetSourceForgottenKnowledge         12 sptr
#comfunc global ISyncChangeBatchBase_SetLastBatch                        13
#comfunc global ISyncChangeBatchBase_SetWorkEstimateForBatch             14 int
#comfunc global ISyncChangeBatchBase_SetRemainingWorkEstimateForSession  15 int
#comfunc global ISyncChangeBatchBase_Serialize                           16 var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。