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。
如果 pbFilterKeyMap 太小,则返回值为 HRESULT_FROM_WIN32(ERROR_MORE_DATA)。在此情况下,将在 pcbFilterKeyMap 中返回必需的字节数。
备注
若要序列化包含在筛选键映射中的筛选器,首先,此方法将通过对每个筛选器调用 ISyncFilter::Serialize 并为字节数组参数指定 NULL,来获取筛选器的大小。然后,通过再次对每个筛选器调用 ISyncFilter::Serialize 来序列化相应筛选器。如果写入到筛选器的字节数组的字节数与第一次调用 ISyncFilter::Serialize 时报告的筛选器大小不匹配,则将取消序列化并返回 E_INVALIDARG。