Freigeben über


IRequestFilteredSync::SpecifyFilter

Handelt bei einer Implementierung durch eine abgeleitete Klasse aus, welcher Filter während der Änderungsenumeration vom Quellenanbieter verwendet wird.

HRESULT SpecifyFilter(
  IFilterRequestCallback * pCallback);

Parameter

  • pCallback
    [in] Die Rückrufschnittstelle, mit der der Zielanbieter anfordert, dass während der Änderungsenumeration vom Quellenanbieter ein Filter verwendet wird.

Rückgabewert

  • S_OK

  • Anbieterspezifische Fehlercodes.

Hinweise

Die Filteraushandlung wird mit den folgenden Schritten durchgeführt:

  1. Bevor der Quellenanbieter mit der Auflistung der Änderungen beginnt, startet Sync Framework die Filteraushandlung, indem IRequestFilteredSync::SpecifyFilter auf dem Zielanbieter aufgerufen wird.

  2. Während der Verarbeitung von IRequestFilteredSync::SpecifyFilter übergibt der Zielanbieter Filter an IFilterRequestCallback::RequestFilter.

  3. Während der Verarbeitung von IFilterRequestCallback::RequestFilter ruft Sync Framework auf dem Quellenanbieter ISupportFilteredSync::AddFilter auf. Wenn der Quellenanbieter den angeforderten Filter nicht unterstützt, kann der Zielanbieter weiterhin Filter anfordern, bis ein unterstützter Filter gefunden wird.

Wenn ein Filter erfolgreich ausgehandelt wurde, wird er vom Quellenanbieter zur Festlegung der während der Änderungsenumeration einzuschließenden Elemente verwendet.

Hinweise für Implementierer

Eine Implementierung dieser Methode kann so lange IFilterRequestCallback::RequestFilter aufrufen, bis ein Filter gefunden wird, der sowohl vom Zielanbieter als auch vom Quellenanbieter unterstützt wird. Der Quellenanbieter gibt an, dass er keinen Filter unterstützt, indem er SYNC_E_FILTER_NOT_SUPPORTED als Reaktion auf den ISupportFilteredSync::AddFilter-Aufruf zurückgibt.

Wenn ISupportFilteredSync::AddFilter einen anderen Fehler als SYNC_E_FILTER_NOT_SUPPORTED zurückgibt, sollte IRequestFilteredSync::SpecifyFilter den Fehler an Sync Framework zurückgeben. Dadurch wird die Synchronisierungssitzung beendet.

Siehe auch

Verweis

IRequestFilteredSync-Schnittstelle
ISupportFilteredSync-Schnittstelle
IFilterRequestCallback-Schnittstelle