ISupportFilteredSync::AddFilter
Establece el filtro que usa el proveedor de origen para la enumeración de cambios cuando se implementa mediante una clase derivada.
HRESULT AddFilter(
IUnknown * pFilter,
FILTERING_TYPE filteringType);
Parámetros
Término |
Definición |
pFilter |
[in] Filtro que el proveedor de origen utiliza para la enumeración de cambios. |
filteringType |
[in] Indica el tipo de información incluida en un lote de cambios durante la sincronización filtrada. |
Valor devuelto
S_OK
SYNC_E_FILTER_NOT_SUPPORTED si no se admite el tipo filtro que especifica pFilter.
Códigos de error determinados por el proveedor.
Notas
La negociación de filtros se logra a través de los pasos siguientes:
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.
Durante el procesamiento de IRequestFilteredSync::SpecifyFilter, el proveedor de destino pasa filtros a IFilterRequestCallback::RequestFilter.
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 examinar el filtro especificado por pFilter y filteringType, y devolver SYNC_E_FILTER_NOT_SUPPORTED para indicar que el filtro no se admite. A continuación, el proveedor de destino puede solicitar otros filtros hasta encontrar uno que se admita.
Por lo general, el proveedor de destino finalizará la sesión de sincronización cuando ISupportFilteredSync::AddFilter devuelva un error distinto de SYNC_E_FILTER_NOT_SUPPORTED.