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

ISyncChangeBatchBase2

COM
IID6fdb596a-d755-4584-bd0c-c0c23a548fbf継承元ISyncChangeBatchBase自前メソッド開始 vtbl17

公式ドキュメント

ISyncChangeBatchBase オブジェクトの追加機能を表します。

解説(Remarks)

ISyncChangeBatchBase2 オブジェクトは、ISyncChangeBatchBase オブジェクトの QueryInterface メソッドに IID_ISyncChangeBatchBase2 を渡すことで取得できます。

メソッド 1

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

vtbl 17 HRESULT SerializeWithOptions(SYNC_SERIALIZATION_VERSION targetFormatVersion, DWORD dwFlags, BYTE* pbBuffer, DWORD* pdwSerializedSize)

指定されたバージョンとシリアル化オプションに基づいて、変更バッチオブジェクトのデータをバイト配列にシリアル化します。

targetFormatVersionSYNC_SERIALIZATION_VERSIONinシリアル化された変更バッチは、このバージョンと互換性を持ちます。
dwFlagsDWORDin予約されています。0 を指定する必要があります。
pbBufferBYTE*inout変更バッチオブジェクトのデータは、このバッファーにシリアル化されます。
pdwSerializedSizeDWORD*inoutpbBuffer のバイト数です。pbBuffer が小さすぎる場合は変更バッチのデータをシリアル化するために必要なバイト数を、それ以外の場合は書き込まれたバイト数を返します。

戻り値

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

戻り値 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
dwFlags が 0 ではないか、targetFormatVersion で指定されたバージョンが変更バッチオブジェクトのデータと互換性がありません。
E_OUTOFMEMORY
E_POINTER
無効なポインターです。
HRESULT_FROM_WIN32(ERROR_MORE_DATA)
pBuffer が小さすぎます。この場合、必要なバイト数が pdwSerializedSize に返されます。
SYNC_E_INVALID_OPERATION
変更バッチに、開始されたが終了していないグループが含まれています。
SYNC_E_INVALID_VERSION
targetFormatVersion の値がオブジェクトのバージョンよりも高いか、オブジェクトに targetFormatVersion と互換性のない要素が含まれています。

解説(Remarks)

次の表は、ISyncFilterInfo オブジェクトに関する情報を指定するフラグについて説明しています。

SYNC_FILTER_INFO_FLAG の値 説明
SYNC_FILTER_INFO_FLAG_ITEM_LIST このフラグは、同期されるアイテムのセットがアイテムフィルターによって制限されていることを示します。
SYNC_FILTER_INFO_FLAG_CHANGE_UNIT_LIST IChangeUnitListFilterInfo オブジェクトは、変更がスコープに対して定義された変更ユニットのサブセットにのみ適用されることを指定します。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ISyncChangeBatchBase2 "{6FDB596A-D755-4584-BD0C-C0C23A548FBF}"
#usecom global ISyncChangeBatchBase2 IID_ISyncChangeBatchBase2 "{}"
#comfunc global ISyncChangeBatchBase2_SerializeWithOptions  17 int,int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。