Partager via


IReconcilableObject::Reconcile, méthode (reconcile.h)

Rapproche l’état d’un objet avec un ou plusieurs autres objets. Le rapprochement met à jour l’état interne de l’objet en fusionnant les états de tous les objets pour former un état combiné.

Syntaxe

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

Paramètres

pInitiator

Type : IReconcileInitiator*

Adresse de l’interface IReconcileInitiator pour l’initiateur du processus de rapprochement. Ce paramètre ne doit pas être NULL.

dwFlags

Type : DWORD

Indicateurs de contrôle pour le rapprochement. Ce paramètre peut être égal à zéro ou à une combinaison de ces valeurs :

RECONCILEF_FEEDBACKWINDOWVALID

Le paramètre hwndProgressFeedback est valide.

RECONCILEF_MAYBOTHERUSER

Le rapprochement de porte-documents peut demander l’interaction de l’utilisateur si nécessaire. Sans cette valeur, l’interaction utilisateur n’est pas autorisée. Le paramètre hwndOwner est valide.

RECONCILEF_NORESIDUESOK

Le rapprochement de porte-documents peut ignorer les demandes de résidus et effectuer le rapprochement. Les rapprochements qui ne prennent pas en charge les résidus doivent case activée pour cette valeur chaque fois qu’un initiateur demande des résidus. Sans cette valeur, un conciliateur qui ne prend pas en charge les résidus doit immédiatement retourner REC_E_NORESIDUES.

RECONCILEF_OMITSELFRESIDUE

Le rapprochement de porte-documents peut ignorer tout résidu associé à cet objet. Les initiateurs utilisent généralement cette valeur pour les rapprochements qui bouclent de génération en génération.

RECONCILEF_ONLYYOUWERECHANGED

La méthode Reconcile est appelée pour propager les modifications apportées à l’objet modifié à d’autres objets inchangés. Cette valeur est définie uniquement si la clé suivante existe dans le Registre.

HKEY_CLASSES_ROOT
   CLSID
      {CLSID of reconciler}
         SingleChangeHook

Si cette clé n’est pas présente dans le Registre, l’initiateur effectue le rapprochement en rendant les autres objets inchangés binaires identiques copies identiques de l’objet modifié. Les monikers rgpmkOtherInput identifient les autres objets. Cette valeur n’est définie dans dwFlags que si RECONCILEF_YOUMAYDOTHEUPDATES est également défini. Si le rapprochement de porte-documents termine correctement les mises à jour, REC_S_IDIDTHEUPDATES doit être retourné et la variable pointée par le paramètre plOutIndex doit être définie sur -1L. Notez que S_OK ne doit pas être retourné en cas de réussite si cette valeur est définie dans dwFlags. L’initiateur n’enregistre pas le stockage de l’objet source si Reconcile retourne REC_S_IDIDTHEUPDATES. Si le rapprochement souhaite revenir à l’implémentation de copie de bits de l’initiateur, il peut retourner S_FALSE.

RECONCILEF_RESUMEDRECONCILIATION

Le rapprochement de porte-documents doit reprendre le rapprochement en utilisant les résidus partiels fournis. Sans cette valeur, le rapprochement doit ignorer toutes les informations « considérées mais rejetées » dans l’une des versions d’entrée.

RECONCILEF_YOUMAYDOTHEUPDATES

Le rapprochement de porte-documents peut effectuer les mises à jour. Sans cette valeur, le rapprochement ne peut pas effectuer les mises à jour. Si le rapprochement est effectué correctement, le rapprochement doit retourner REC_S_IDIDTHEUPDATES s’il a effectué les mises à jour ou S_OK s’il n’a pas effectué les mises à jour.

hwndOwner

Type : HWND

Handle de la fenêtre à utiliser comme parent pour toutes les fenêtres enfants créées par le rapprochement de porte-documents. Ce paramètre n’est valide que si RECONCILEF_MAYBOTHERUSER est spécifié dans dwFlags.

hwndProgressFeedback

Type : HWND

Handle de la fenêtre de commentaires de progression à afficher par l’initiateur. Ce paramètre est valide uniquement si RECONCILEF_FEEDBACKWINDOWVALID est spécifié dans dwFlags. Le rapprochement de porte-documents peut appeler la fonction SetWindowText à l’aide de ce handle de fenêtre pour afficher des informations de rapprochement supplémentaires status à l’utilisateur.

ulcInput

Type : ULONG

Nombre de versions ou de résidus partiels spécifiés dans dwFlags. Ce paramètre ne doit pas être égal à zéro.

rgpmkOtherInput

Type : IMoniker**

Adresse d’un tableau qui contient les adresses des monikers à utiliser pour accéder aux versions ou aux résidus partiels à rapprocher.

plOutIndex

Type : LONG*

Adresse de la variable qui reçoit une valeur d’index indiquant si le résultat du rapprochement est identique à l’une des versions initiales. La variable est définie sur -1L si le résultat de rapprochement est une combinaison de deux versions ou plus. Sinon, il s’agit d’un index de base zéro, avec 0 indiquant cet objet, 1 indiquant la première version, 2 indiquant la deuxième version, et ainsi de suite.

pstgNewResidues

Type : IStorage*

Adresse de l’interface IStorage utilisée pour stocker les nouveaux résidus. Ce paramètre peut être NULL pour indiquer que les résidus ne doivent pas être enregistrés.

pvReserved

Type : void*

Réservés au; doit être NULL.

Valeur retournée

Type : HRESULT

Retourne l’une des valeurs suivantes.

Code de retour Description
S_OK
Le rapprochement s’est terminé avec succès et les modifications doivent être propagées aux autres objets.
S_FALSE
Aucune action de rapprochement n’a été effectuée. Le rapprochement de porte-documents souhaite revenir à l’implémentation de copie de bits de l’initiateur. Cette valeur ne peut être retournée que si RECONCILEF_ONLYYOUWERECHANGED est défini dans dwFlags.
REC_S_IDIDTHEUPDATES
Le rapprochement a été effectué avec succès et tous les objets impliqués (l’objet implémentant la méthode Reconcile et tous les autres objets décrits par rgpmkOtherInput) ont été mis à jour de manière appropriée. L’initiateur n’a donc pas besoin d’effectuer quoi que ce soit d’autre pour propager les modifications. La variable pointée par plOutIndex doit être définie sur -1L si Reconcile retourne cette valeur. L’initiateur n’enregistre pas le stockage de l’objet source si Reconcile retourne cette valeur. Cette valeur ne peut être retournée que si RECONCILEF_YOUMAYDOTHEUPDATES a été défini dans dwFlags.
REC_S_NOTCOMPLETE
Le rapprochement de porte-documents a complété une partie, mais pas la totalité, du rapprochement. Il peut nécessiter une interaction de l’utilisateur. Les modifications ne seront pas propagées à d’autres objets.
REC_S_NOTCOMPLETEBUTPROPAGATE
Le rapprochement de porte-documents a complété une partie, mais pas la totalité, du rapprochement. Il peut nécessiter une interaction de l’utilisateur. Les modifications seront propagées aux autres objets.
REC_E_NORESIDUES
Le rapprochement de porte-documents ne prend pas en charge la génération de résidus, de sorte que la demande de résidus est refusée. L’état de l’objet est inchangé.
REC_E_ABORTED
Le rapprochement de porte-documents a arrêté le rapprochement en réponse à une demande d’arrêt de l’initiateur (voir SetAbortCallback pour plus d’informations). L’état de l’objet n’est pas spécifié.
REC_E_TOODIFFERENT
Impossible d’effectuer le rapprochement, car les versions de document fournies sont trop différentes.
REC_E_INEEDTODOTHEUPDATES
L’indicateur RECONCILEF_YOUMAYDOTHEUPDATES n’a pas été défini lors de l’appel de l’implémentation Reconcile de l’objet ; cette implémentation nécessite que cette valeur soit définie dans le paramètre dwFlags .
OLE_E_NOTRUNNING
L’objet est un objet incorporé OLE qui doit être exécuté avant que cette opération puisse être effectuée. L’état de l’objet est inchangé.
E_UNEXPECTED
Erreur non spécifiée.

Spécifications

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête réconciliation.h
DLL Shell32.dll (version 4.0 ou ultérieure)

Voir aussi

IReconcilableObject