Compartir a través de


Método IReconcilableObject::Reconcile (reconcil.h)

Reconcilia el estado de un objeto con uno o varios objetos. La conciliación actualiza el estado interno del objeto combinando los estados de todos los objetos para formar un estado combinado.

Sintaxis

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

Parámetros

pInitiator

Tipo: IReconcileInitiator*

Dirección de la interfaz IReconcileInitiator para el iniciador del proceso de conciliación. Este parámetro no debe ser NULL.

dwFlags

Tipo: DWORD

Marcas de control para la conciliación. Este parámetro puede ser cero o una combinación de estos valores:

RECONCILEF_FEEDBACKWINDOWVALID

El parámetro hwndProgressFeedback es válido.

RECONCILEF_MAYBOTHERUSER

El reconciliador de maletín puede solicitar la interacción del usuario si es necesario. Sin este valor, no se permite la interacción del usuario. El parámetro hwndOwner es válido.

RECONCILEF_NORESIDUESOK

El reconciliador de maletín puede ignorar las solicitudes de residuos y llevar a cabo la conciliación. Los reconciliadores que no admiten residuos deben comprobar este valor siempre que un iniciador solicite residuos. Sin este valor, un reconciliador que no admite residuos debe devolver inmediatamente REC_E_NORESIDUES.

RECONCILEF_OMITSELFRESIDUE

El reconciliador de maletín puede descartar cualquier residuos asociado a este objeto. Normalmente, los iniciadores usan este valor para las reconciliaciones que se repiten de generación a generación.

RECONCILEF_ONLYYOUWERECHANGED

Se llama al método Reconcile para propagar los cambios en el objeto cambiado a otros objetos sin cambios. Este valor solo se establecerá si existe la siguiente clave en el Registro.

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

Si esta clave no está presente en el Registro, el iniciador realiza la conciliación haciendo que los demás objetos sin modificar sean copias idénticas binarias del objeto modificado. Los monikers rgpmkOtherInput identifican los demás objetos. Este valor solo se establecerá en dwFlags si también se establece RECONCILEF_YOUMAYDOTHEUPDATES. Si el reconciliador de maletín completa correctamente las actualizaciones, se debe devolver REC_S_IDIDTHEUPDATES y la variable a la que apunta el parámetro plOutIndex debe establecerse en -1L. Tenga en cuenta que no se debe devolver S_OK si este valor se establece en dwFlags. El iniciador no guardará el almacenamiento del objeto de origen si Reconcile devuelve REC_S_IDIDTHEUPDATES. Si el reconciliador desea revertir a la implementación de copia de bits del iniciador, puede devolver S_FALSE.

RECONCILEF_RESUMEDRECONCILIATION

El reconciliador de maletín debe reanudar la conciliación, utilizando los residuos parciales proporcionados. Sin este valor, el reconciliador debe omitir cualquier información "considerada pero rechazada" en cualquiera de las versiones de entrada.

RECONCILEF_YOUMAYDOTHEUPDATES

El reconciliador de maletín puede realizar las actualizaciones. Sin este valor, el reconciliador no puede realizar las actualizaciones. Si la conciliación se completa correctamente, el reconciliador debe devolver REC_S_IDIDTHEUPDATES si realizó las actualizaciones o S_OK si no realizó las actualizaciones.

hwndOwner

Tipo: HWND

Identificador de la ventana que se va a usar como elemento primario para las ventanas secundarias que crea el reconciliador de maletín. Este parámetro solo es válido si RECONCILEF_MAYBOTHERUSER se especifica en dwFlags.

hwndProgressFeedback

Tipo: HWND

Identificador de la ventana de comentarios de progreso que el iniciador mostrará. Este parámetro solo es válido si RECONCILEF_FEEDBACKWINDOWVALID se especifica en dwFlags. El reconciliador de maletín puede llamar a la función SetWindowText mediante este identificador de ventana para mostrar información adicional del estado de conciliación al usuario.

ulcInput

Tipo: ULONG

Número de versiones o residuos parciales especificados en dwFlags. Este parámetro no debe ser cero.

rgpmkOtherInput

Tipo: IMoniker**

Dirección de una matriz que contiene las direcciones de los monikers que se van a utilizar para acceder a las versiones o residuos parciales que se van a conciliar.

plOutIndex

Tipo: LONG*

Dirección de la variable que recibe un valor de índice que indica si el resultado de la conciliación es idéntico a una de las versiones iniciales. La variable se establece en -1L si el resultado de la conciliación es una combinación de dos o más versiones. De lo contrario, es un índice de base cero, con 0 que indica este objeto, 1 que indica la primera versión, 2 que indica la segunda versión, etc.

pstgNewResidues

Tipo: IStorage*

Dirección de la interfaz IStorage utilizada para almacenar los nuevos residuos. Este parámetro puede ser NULL para indicar que no se deben guardar residuos.

pvReserved

Tipo: void*

Reservados; debe ser NULL.

Valor devuelto

Tipo: HRESULT

Devuelve uno de los valores siguientes.

Código devuelto Descripción
S_OK
La conciliación se completó correctamente y los cambios se deben propagar a los demás objetos.
S_FALSE
No se realizaron acciones de conciliación. El reconciliador de maletín desea revertir a la implementación de copia de bits del iniciador. Este valor solo se puede devolver si RECONCILEF_ONLYYOUWERECHANGED está establecido en dwFlags.
REC_S_IDIDTHEUPDATES
La conciliación se completó correctamente y todos los objetos implicados (el objeto que implementa el método Reconcile y todos los demás objetos descritos por rgpmkOtherInput) se han actualizado correctamente. Por lo tanto, el iniciador no necesita hacer nada más para propagar los cambios. La variable a la que apunta plOutIndex debe establecerse en -1L si Reconcile devuelve este valor. El iniciador no guardará el almacenamiento del objeto de origen si Reconcile devuelve este valor. Este valor solo se puede devolver si RECONCILEF_YOUMAYDOTHEUPDATES se estableció en dwFlags.
REC_S_NOTCOMPLETE
El reconciliador de maletín completó algunos, pero no todos, de la reconciliación. Es posible que necesite interacción del usuario. Los cambios no se propagarán a otros objetos.
REC_S_NOTCOMPLETEBUTPROPAGATE
El reconciliador de maletín completó algunos, pero no todos, de la reconciliación. Es posible que necesite interacción del usuario. Los cambios se propagarán a los demás objetos.
REC_E_NORESIDUES
El reconciliador de maletín no apoya la generación de residuos, por lo que se deniega la solicitud de residuos. El estado del objeto no cambia.
REC_E_ABORTED
El reconciliador de maletín detuvo la conciliación en respuesta a una solicitud de finalización del iniciador (consulte SetAbortCallback para obtener más información). El estado del objeto no está especificado.
REC_E_TOODIFFERENT
No se puede llevar a cabo la conciliación porque las versiones del documento proporcionadas son demasiado diferentes.
REC_E_INEEDTODOTHEUPDATES
La marca RECONCILEF_YOUMAYDOTHEUPDATES no se estableció cuando se llamó a la implementación de Reconciliación del objeto; esta implementación requiere que este valor se establezca en el parámetro dwFlags .
OLE_E_NOTRUNNING
El objeto es un objeto incrustado OLE que se debe ejecutar antes de que se pueda realizar esta operación. El estado del objeto no cambia.
E_UNEXPECTED
Error no especificado.

Requisitos

   
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado reconcil.h
Archivo DLL Shell32.dll (versión 4.0 o posterior)

Consulte también

IReconcilableObject