Поделиться через


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.

См. также

Справочник

Интерфейс IFilterKeyMap