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.