Compartilhar via


IRequestFilteredSync::SpecifyFilter

Quando implementado por uma classe derivada, negocia qual filtro será usado pelo provedor de origem durante a enumeração de alteração.

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Parâmetros

  • pCallback
    [in] A interface de retorno de chamada que é usada pelo provedor de destino para solicitar que um filtro seja usado pelo provedor de origem durante a enumeração de alteração.

Valor de retorno

  • S_OK

  • 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 chamar IFilterRequestCallback::RequestFilter repetidamente até que um filtro com suporte do provedor de destino e do provedor de origem seja encontrado. O provedor de origem indica que não oferece suporte a um filtro retornando SYNC_E_FILTER_NOT_SUPPORTED em resposta à chamada ISupportFilteredSync::AddFilter.

Quando ISupportFilteredSync::AddFilter retornar um erro diferente de SYNC_E_FILTER_NOT_SUPPORTED, IRequestFilteredSync::SpecifyFilter deverá retornar o erro ao Sync Framework. Isso encerra a sessão de sincronização.

Consulte também

Referência

Interface IRequestFilteredSync
Interface ISupportFilteredSync
Interface IFilterRequestCallback