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 |
---|---|
|
La conciliación se completó correctamente y los cambios se deben propagar a los demás objetos. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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. |
|
No se puede llevar a cabo la conciliación porque las versiones del documento proporcionadas son demasiado diferentes. |
|
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 . |
|
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. |
|
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) |