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 |
---|---|
|
Le rapprochement s’est terminé avec succès et les modifications doivent être propagées aux autres objets. |
|
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. |
|
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. |
|
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. |
|
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. |
|
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é. |
|
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é. |
|
Impossible d’effectuer le rapprochement, car les versions de document fournies sont trop différentes. |
|
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 . |
|
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é. |
|
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) |