IReconcilableObject::ReconcileIReconcilableObject::Reconcile*
*Contents  *Index  *Topic Contents
*Previous Topic: IReconcilableObject::GetProgressFeedbackMaxEstimate
*Next Topic: IReconcileInitiator

IReconcilableObject::Reconcile


HRESULT IReconcilableObject::Reconcile(
    IReconcileInitiator *pInitiator,		
    DWORD dwFlags,		
    HWND hwndOwner,		
    HWND hwndProgressFeedback,		
    ULONG ulcInput,		
    IMoniker **rgpmkOtherInput,		
    LONG *plOutIndex,		
    IStorage *pstgNewResidues,		
    void *pvReserved		
   );		

Reconciles the state of an object with one or more other objects. The reconciliation updates the internal state of the object by merging the states of all objects to form a combined state.

pInitiator
Address of the IReconcileInitiator interface for the initiator of the reconciliation process. This parameter must not be NULL.
dwFlags
Control flags for the reconciliation. This parameter may be zero or a combination of these values:
RECONCILEF_FEEDBACKWINDOWVALID The hwndProgressFeedback parameter is valid.
RECONCILEF_MAYBOTHERUSER The briefcase reconciler can prompt for user interaction if it is needed. Without this value, user interaction is not permitted. The hwndOwner parameter is valid.
RECONCILEF_NORESIDUESOK The briefcase reconciler can ignore requests for residues and carry out reconciliation. Reconcilers that do not support residues should check for this value whenever an initiator requests residues. Without this value, a reconciler that does not support residues must immediately return REC_E_NORESIDUES.
RECONCILEF_OMITSELFRESIDUE The briefcase reconciler can discard any residue associated with this object. Initiators typically use this value for reconciliations that loop from generation to generation.
RECONCILEF_ONLYYOUWERECHANGED The Reconcile method is being called to propagate changes in the changed object to other unchanged objects. This value will only be set if the following key exists in the registry.

HKEY_CLASSES_ROOT\
   CLSID\
      <clsid_of_reconciler>\
         SingleChangeHook

If this key is not present in the registry, the initiator carries out reconciliation by making the other unchanged objects binary identical copies of the changed object. The rgpmkOtherInput monikers identify the other objects. This value will only be set in dwFlags if RECONCILEF_YOUMAYDOTHEUPDATES is also set. If the briefcase reconciler completes the updates itself successfully, REC_S_IDIDTHEUPDATES should be returned and the variable pointed to by the plOutIndex parameter should be set to -1L. Note that S_OK should not be returned on success if this value is set in dwFlags. The initiator will not save the source object's storage if Reconcile returns REC_S_IDIDTHEUPDATES. If the reconciler wishes to fall back to the initiator's bit copy implementation, it may return S_FALSE.

RECONCILEF_RESUMEDRECONCILIATION The briefcase reconciler should resume reconciliation, using the partial residues provided. Without this value, the reconciler should ignore any "considered but rejected" information in any of the input versions.
RECONCILEF_YOUMAYDOTHEUPDATES The briefcase reconciler can perform the updates. Without this value, the reconciler cannot perform the updates. If reconciliation is completed successfully, the reconciler should return REC_S_IDIDTHEUPDATES if it performed the updates or S_OK if it did not perform the updates.
hwndOwner
Handle to the window to be used as the parent for any child windows that the briefcase reconciler creates. This parameter is valid only if RECONCILEF_MAYBOTHERUSER is specified in dwFlags.
hwndProgressFeedback
Handle to the progress feedback window to be displayed by the initiator. This parameter is valid only if RECONCILEF_FEEDBACKWINDOWVALID is specified in dwFlags. The briefcase reconciler may call the SetWindowText function using this window handle to display additional reconciliation status information to the user.
ulcInput
Number of versions or partial residues specified in dwFlags. This parameter must not be zero.
rgpmkOtherInput
Address of an array that contains the addresses of the monikers to use to access the versions or partial residues to be reconciled.
plOutIndex
Address of the variable that receives an index value indicating whether the result of the reconciliation is identical to one of the initial versions. The variable is set to -1L if the reconciliation result is a combination of two or more versions. Otherwise, it is a zero-based index, with 0 indicating this object, 1 indicating the first version, 2 indicating the second version, and so on.
pstgNewResidues
Address of the IStorage interface used to store the new residues. This parameter can be NULL to indicate that residues should not be saved.
pvReserved
Reserved; must be NULL.

See also IReconcilableObject


Up Top of Page
© 1997 Microsoft Corporation. All rights reserved. Terms of Use.