Share via


IRequestFilteredSync::SpecifyFilter

Cuando se implementa en una clase derivada, negocia el filtro que el proveedor de origen utiliza durante la enumeración de cambios.

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Parámetros

  • pCallback
    [in] Interfaz de devolución de llamadas que el proveedor de destino utiliza para solicitar que el proveedor de origen utilice un filtro durante la enumeración de cambios.

Valor devuelto

  • S_OK

  • Códigos de error determinados por el proveedor.

Notas

La negociación de filtros se logra a través de los pasos siguientes:

  1. Antes de que el proveedor comience a enumerar los cambios, Sync Framework inicia la negociación de filtros llamando a IRequestFilteredSync::SpecifyFilter en el proveedor de destino.

  2. Durante el procesamiento de IRequestFilteredSync::SpecifyFilter, el proveedor de destino pasa filtros a IFilterRequestCallback::RequestFilter.

  3. Durante el procesamiento de IFilterRequestCallback::RequestFilter, Sync Framework llama a ISupportFilteredSync::AddFilter en el proveedor de origen. Si el proveedor de origen no admite el filtro solicitado, el proveedor de destino puede continuar solicitando filtros hasta encontrar uno admitido.

Cuando se ha negociado un filtro correctamente, el proveedor de origen lo utiliza para determinar qué elementos incluir durante la enumeración de cambios.

Notas para los implementadores

Una implementación de este método puede llamar repetidamente a IFilterRequestCallback::RequestFilter hasta que se encuentra un filtro que admiten tanto el proveedor de destino como el proveedor de origen. Para indicar que no admite un filtro, el proveedor de origen devuelve SYNC_E_FILTER_NOT_SUPPORTED como respuesta a la llamada a ISupportFilteredSync::AddFilter.

Si ISupportFilteredSync::AddFilter devuelve un error distinto de SYNC_E_FILTER_NOT_SUPPORTED, IRequestFilteredSync::SpecifyFilter debe devolver el error a Sync Framework. Esto pone fin a la sesión de sincronización.

Vea también

Referencia

Interfaz IRequestFilteredSync
Interfaz ISupportFilteredSync
Interfaz IFilterRequestCallback