IReconcilableObject::Reconcile-Methode (reconcil.h)

Stimmt den Zustand eines Objekts mit einem oder mehreren anderen Objekten ab. Die Abstimmung aktualisiert den internen Zustand des Objekts, indem die Zustände aller Objekte zu einem kombinierten Zustand zusammengeführt werden.

Syntax

HRESULT Reconcile(
  IReconcileInitiator *pInitiator,
  DWORD               dwFlags,
  HWND                hwndOwner,
  HWND                hwndProgressFeedback,
  ULONG               ulcInput,
  IMoniker            **rgpmkOtherInput,
  PLONG               plOutIndex,
  IStorage            *pstgNewResidues,
  PVOID               pvReserved
);

Parameter

pInitiator

Typ: IReconcileInitiator*

Die Adresse der IReconcileInitiator-Schnittstelle für den Initiator des Abstimmungsprozesses. Dieser Parameter darf nicht NULL sein.

dwFlags

Art: DWORD

Die Kontrollflags für die Abstimmung. Dieser Parameter kann null oder eine Kombination aus diesen Werten sein:

RECONCILEF_FEEDBACKWINDOWVALID

Der hwndProgressFeedback-Parameter ist gültig.

RECONCILEF_MAYBOTHERUSER

Der Aktenkoffer-Abgleich kann bei Bedarf zur Benutzerinteraktion auffordern. Ohne diesen Wert ist eine Benutzerinteraktion nicht zulässig. Der hwndOwner-Parameter ist gültig.

RECONCILEF_NORESIDUESOK

Der Aktenkoffer-Versöhner kann Anträge auf Rückstände ignorieren und eine Abstimmung vornehmen. Abgleicher, die keine Rückstände unterstützen, sollten diesen Wert überprüfen, wenn ein Initiator Rückstände anfordert. Ohne diesen Wert muss ein Versöhner, der keine Rückstände unterstützt, sofort REC_E_NORESIDUES zurückgeben.

RECONCILEF_OMITSELFRESIDUE

Der Aktenkoffer-Abgleich kann alle diesem Objekt zugeordneten Rückstände verwerfen. Initiatoren verwenden diesen Wert in der Regel für Abstimmungen, die sich von Generation zu Generation schleifen.

RECONCILEF_ONLYYOUWERECHANGED

Die Reconcile-Methode wird aufgerufen, um Änderungen im geänderten Objekt an andere unveränderte Objekte weiterzuverbreiten. Dieser Wert wird nur festgelegt, wenn der folgende Schlüssel in der Registrierung vorhanden ist.

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

Wenn dieser Schlüssel nicht in der Registrierung vorhanden ist, führt der Initiator die Abstimmung durch, indem er die anderen unveränderten Objekte binär identische Kopien des geänderten Objekts erstellt. Die rgpmkOtherInput-Moniker identifizieren die anderen Objekte. Dieser Wert wird nur in dwFlags festgelegt, wenn RECONCILEF_YOUMAYDOTHEUPDATES ebenfalls festgelegt ist. Wenn der Aktenkoffer-Abgleich die Aktualisierungen selbst erfolgreich abgeschlossen hat, sollte REC_S_IDIDTHEUPDATES zurückgegeben werden, und die Variable, auf die vom plOutIndex-Parameter verwiesen wird, sollte auf -1L festgelegt werden. Beachten Sie, dass S_OK bei Erfolg nicht zurückgegeben werden sollte, wenn dieser Wert in dwFlags festgelegt ist. Der Initiator speichert den Speicher des Quellobjekts nicht, wenn Versöhnung REC_S_IDIDTHEUPDATES zurückgibt. Wenn der Abgleich auf die Bitkopieimplementierung des Initiators zurückgreifen möchte, gibt er möglicherweise S_FALSE zurück.

RECONCILEF_RESUMEDRECONCILIATION

Der Aktenkoffer-Versöhner sollte den Abgleich unter Verwendung der bereitgestellten Teilrückstände fortsetzen. Ohne diesen Wert sollte der Abgleich alle "berücksichtigten, aber abgelehnten" Informationen in einer der Eingabeversionen ignorieren.

RECONCILEF_YOUMAYDOTHEUPDATES

Der Aktenkoffer-Abgleich kann die Updates durchführen. Ohne diesen Wert kann der Abgleich die Updates nicht ausführen. Wenn die Abstimmung erfolgreich abgeschlossen wurde, sollte der Abgleich REC_S_IDIDTHEUPDATES zurückgeben, wenn er die Updates ausgeführt hat, oder S_OK, wenn er die Updates nicht ausgeführt hat.

hwndOwner

Typ: HWND

Ein Handle für das Fenster, das als übergeordnetes Fenster für alle untergeordneten Fenster verwendet werden soll, die vom Aktenkoffer-Abgleich erstellt werden. Dieser Parameter ist nur gültig, wenn RECONCILEF_MAYBOTHERUSER in dwFlags angegeben ist.

hwndProgressFeedback

Typ: HWND

Ein Handle für das Statusfeedbackfenster, das vom Initiator angezeigt werden soll. Dieser Parameter ist nur gültig, wenn RECONCILEF_FEEDBACKWINDOWVALID in dwFlags angegeben ist. Der Aktenkoffer-Abgleich kann die SetWindowText-Funktion mithilfe dieses Fensterhandles aufrufen, um dem Benutzer zusätzliche Abstimmungsinformationen status anzuzeigen.

ulcInput

Typ: ULONG

Die Anzahl von Versionen oder Teilrückständen, die in dwFlags angegeben sind. Dieser Parameter darf nicht 0 sein.

rgpmkOtherInput

Typ: IMoniker**

Die Adresse eines Arrays, das die Adressen der Moniker enthält, die für den Zugriff auf die zu vereinbarenden Versionen oder teilweisen Rückstände verwendet werden sollen.

plOutIndex

Typ: LONG*

Die Adresse der Variablen, die einen Indexwert empfängt, der angibt, ob das Ergebnis der Abstimmung mit einer der ersten Versionen identisch ist. Die Variable wird auf -1L festgelegt, wenn das Abstimmungsergebnis eine Kombination aus zwei oder mehr Versionen ist. Andernfalls handelt es sich um einen nullbasierten Index, wobei 0 dieses Objekt, 1 die erste Version, 2 die zweite Version usw. angibt.

pstgNewResidues

Typ: IStorage*

Die Adresse der IStorage-Schnittstelle , die zum Speichern der neuen Rückstände verwendet wird. Dieser Parameter kann NULL sein, um anzugeben, dass Rückstände nicht gespeichert werden sollen.

pvReserved

Typ: void*

Reserviert; muss NULL sein.

Rückgabewert

Typ: HRESULT

Gibt einen der folgenden Werte zurück.

Rückgabecode BESCHREIBUNG
S_OK
Die Abstimmung wurde erfolgreich abgeschlossen, und die Änderungen müssen an die anderen Objekte weitergegeben werden.
S_FALSE
Es wurden keine Versöhnungsaktionen durchgeführt. Der Aktenkoffer-Abgleich möchte auf die Implementierung der Bitkopie des Initiators zurückgreifen. Dieser Wert kann nur zurückgegeben werden, wenn RECONCILEF_ONLYYOUWERECHANGED in dwFlags festgelegt ist.
REC_S_IDIDTHEUPDATES
Die Abstimmung wurde erfolgreich abgeschlossen, und alle beteiligten Objekte (das Objekt, das die Versöhnungsmethode implementiert, und alle anderen von rgpmkOtherInput beschriebenen Objekte) wurden entsprechend aktualisiert. Der Initiator muss daher nichts weiter tun, um die Änderungen zu verbreiten. Die Variable, auf die von plOutIndex verwiesen wird, sollte auf -1L festgelegt werden, wenn Reconcile diesen Wert zurückgibt. Der Initiator speichert den Speicher des Quellobjekts nicht, wenn Versöhnen diesen Wert zurückgibt. Dieser Wert kann nur zurückgegeben werden, wenn RECONCILEF_YOUMAYDOTHEUPDATES in dwFlags festgelegt wurde.
REC_S_NOTCOMPLETE
Der Aktenkoffer versöhnte einige, aber nicht alle der Versöhnung. Möglicherweise ist eine Benutzerinteraktion erforderlich. Die Änderungen werden nicht an andere Objekte weitergegeben.
REC_S_NOTCOMPLETEBUTPROPAGATE
Der Aktenkoffer versöhnte einige, aber nicht alle der Versöhnung. Möglicherweise ist eine Benutzerinteraktion erforderlich. Die Änderungen werden an die anderen Objekte weitergegeben.
REC_E_NORESIDUES
Der Aktenkoffer-Versöhner unterstützt die Entstehung von Rückständen nicht, sodass der Antrag auf Rückstände abgelehnt wird. Der Zustand des Objekts ist unverändert.
REC_E_ABORTED
Der Aktenkofferabgleich hat die Abstimmung als Reaktion auf eine Beendigungsanforderung des Initiators beendet (weitere Informationen finden Sie unter SetAbortCallback ). Der Zustand des Objekts ist nicht angegeben.
REC_E_TOODIFFERENT
Eine Abstimmung kann nicht durchgeführt werden, da die bereitgestellten Dokumentfassungen zu unähnlich sind.
REC_E_INEEDTODOTHEUPDATES
Das flag RECONCILEF_YOUMAYDOTHEUPDATES wurde nicht festgelegt, als die Versöhnungsimplementierung des Objekts aufgerufen wurde. Für diese Implementierung muss dieser Wert im dwFlags-Parameter festgelegt werden.
OLE_E_NOTRUNNING
Das Objekt ist ein eingebettetes OLE-Objekt, das ausgeführt werden muss, bevor dieser Vorgang ausgeführt werden kann. Der Zustand des Objekts ist unverändert.
E_UNEXPECTED
Unbekannter Fehler.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile reconcil.h
DLL Shell32.dll (Version 4.0 oder höher)

Weitere Informationen

IReconcilableObject