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:
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.
Durante o processamento de IRequestFilteredSync::SpecifyFilter, o provedor de destino transmite filtros a IFilterRequestCallback::RequestFilter.
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