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。

请参阅

参考

IFilterKeyMap 接口