Compartilhar via


ISupportFilteredSync::AddFilter

Define o filtro que é usado para enumeração de alteração pelo provedor de origem, quando implementado por uma classe derivada.

HRESULT AddFilter(
  IUnknown * pFilter,
  FILTERING_TYPE filteringType);

Parâmetros

Termo

Definição

pFilter

[in] O filtro que é usado para enumeração de alteração pelo provedor de origem.

filteringType

[in] Indica o tipo de informações incluídas em um lote de alterações durante a sincronização filtrada.

Valor de retorno

  • S_OK.

  • SYNC_E_FILTER_NOT_SUPPORTED quando o tipo de filtro que é especificado por pFilter não tiver suporte.

  • Códigos de erro determinados pelo provedor.

Comentários

A negociação de filtro é obtida por meio das seguintes etapas:

  1. Antes de o provedor de origem começar a enumerar alterações, o Sync Framework inicia a negociação de filtro chamando IRequestFilteredSync::SpecifyFilter no provedor de destino.

  2. Durante o processamento de IRequestFilteredSync::SpecifyFilter, o provedor de destino transmite filtros a IFilterRequestCallback::RequestFilter.

  3. Durante o processamento de IFilterRequestCallback::RequestFilter, o Sync Framework chama ISupportFilteredSync::AddFilter no provedor de origem. Se o provedor de origem não oferecer suporte ao filtro solicitado, o provedor de destino poderá continuar solicitando filtros até encontrar um que tenha suporte.

Quando um filtro tiver sido negociado com êxito, o provedor de origem o usará para determinar quais itens incluir durante a enumeração de alteração.

Observações para implementadores

Uma implementação desse método pode examinar o filtro especificado por pFilter e filteringType, e retornar SYNC_E_FILTER_NOT_SUPPORTED para indicar que o filtro não tem suporte. O provedor de destino pode então solicitar filtros diferentes até que seja encontrado um que tenha suporte.

O provedor de destino normalmente encerrará a sessão de sincronização quando um erro diferente de SYNC_E_FILTER_NOT_SUPPORTED for retornado de ISupportFilteredSync::AddFilter.

Consulte também

Referência

Interface ISupportFilteredSync