IFilterKeyMap::Serialize
フィルター キー マップのデータをバイト配列にシリアル化します。
構文
HRESULT Serialize(
BYTE * pbFilterKeyMap,
DWORD * pcbFilterKeyMap);
パラメーター
pbFilterKeyMap
[in, out, unique, size_is(*pcbFilterKeyMap)] シリアル化されたデータを受け取るバイト配列です。pcbFilterKeyMap
[in, out] pbFilterKeyMap のバイト数を指定します。書き込まれたバイト数を返します。pbFilterKeyMap が小さすぎる場合は、フィルター キー マップのデータをシリアル化するために必要なバイト数を返します。
戻り値
S_OK
E_INVALIDARG (マップに格納されたフィルターによって、フィルター自体が正常にシリアル化されたことが報告されても、書き込まれたバイト数がフィルターのサイズに一致していない場合)
E_POINTER
E_OUTOFMEMORY
HRESULT_FROM_WIN32(ERROR_MORE_DATA) (pbFilterKeyMap が小さすぎる場合。この場合、必要なバイト数が pcbFilterKeyMap で返されます。)
説明
フィルター キー マップに含まれているフィルターをシリアル化するために、このメソッドでは、まず、各フィルターの ISyncFilter::Serialize を呼び出してフィルターのサイズを取得し、バイト配列のパラメーターに NULL を指定します。その後、各フィルターの ISyncFilter::Serialize を再度呼び出すことで、フィルターがシリアル化されます。フィルターのバイト配列に書き込まれたバイト数が、最初の ISyncFilter::Serialize の呼び出しによって報告されたフィルターのサイズと一致しない場合は、シリアル化が取り消され、E_INVALIDARG が返されます。