Compartilhar via


IFilterKeyMap::Serialize

Serializa os dados do mapa de chave de filtro para uma matriz de bytes.

HRESULT Serialize(
  BYTE * pbFilterKeyMap,
  DWORD * pcbFilterKeyMap);

Parâmetros

  • pbFilterKeyMap
    [in, out, unique, size_is(*pcbFilterKeyMap)] A matriz de bytes que recebe os dados serializados.
  • pcbFilterKeyMap
    [in, out] Especifica o número de bytes em pbFilterKeyMap. Retorna o número de bytes necessários para serializar os dados do mapa de chave de filtro quando pbFilterKeyMap é muito pequeno, ou retorna o número de bytes gravados.

Valor de retorno

  • S_OK.

  • E_INVALIDARG quando um filtro armazenado no mapa relata que ele foi serializado com êxito, mas o número de bytes gravados não corresponde ao tamanho do filtro.

  • E_POINTER.

  • E_OUTOFMEMORY.

  • HRESULT_FROM_WIN32(ERROR_MORE_DATA) quando pbFilterKeyMap for muito pequeno. Nessa situação, o número de bytes necessário é retornado em pcbFilterKeyMap.

Comentários

Para serializar os filtros contidos no mapa de chave de filtro, este método primeiro obtém os tamanhos dos filtros chamando ISyncFilter::Serialize em cada filtro, especificando NULL para o parâmetro de matriz de bytes. Os filtros são serializados então chamando ISyncFilter::Serialize novamente em cada filtro. Quando o número de bytes gravado na matriz de bytes de um filtro não corresponde ao tamanho do filtro relatado pela primeira chamada para ISyncFilter::Serialize, a serialização é cancelada e E_INVALIDARG é retornado.

Consulte também

Referência

Interface IFilterKeyMap