windows-nt/Source/XPSP1/NT/com/published/idlole/oleext/recobj.idl
2020-09-26 16:20:57 +08:00

96 lines
3 KiB
Plaintext

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// File: recobj.idl
//
// Contents: IDL definition for IReconcilableObject interface
//
// Classes:
//
// Functions:
//
// History: 12-12-94 SethuR Created from DavidDi's specs.
//
// Notes: There are a couple of issues regarding this interface that
// needs to be ironed out.
//
// 1) How do we deal with Remote Invocation/execution if we have
// HWND's as part of the arguments ?
//
// 2) How do we prevent having to know about the global topology
// in the case of IReplicaNotify interface ?
//
//----------------------------------------------------------------------------
#include "idlmulti.h"
interface IReconcileInitiator;
REMOTED_INTERFACE(99180162-DA16-101A-935C-444553540000)
interface IReconcilableObject : IUnknown
{
typedef enum _reconcilef
{
// interaction with the user is allowed
RECONCILEF_MAYBOTHERUSER = 0x0001,
//
// hwndProgressFeedback may be used to provide reconciliation progress
// feedback to the user.
//
RECONCILEF_FEEDBACKWINDOWVALID = 0x0002, // BUGBUG
// residue support not required
RECONCILEF_NORESIDUESOK = 0x0004,
// caller not interested in callee's residues
RECONCILEF_OMITSELFRESIDUE = 0x0008,
//
// Reconcile() call resuming after a previous Reconcile() call returned
// REC_E_NOTCOMPLETE
//
RECONCILEF_RESUMERECONCILIATION = 0x0010,
// Object may perform all updates.
RECONCILEF_YOUMAYDOTHEUPDATES = 0x0020,
// Only this object has been changed.
RECONCILEF_ONLYYOUWERECHANGED = 0x0040,
// flag combinations
ALL_RECONCILE_FLAGS = (RECONCILEF_MAYBOTHERUSER |
RECONCILEF_FEEDBACKWINDOWVALID |
RECONCILEF_NORESIDUESOK |
RECONCILEF_OMITSELFRESIDUE |
RECONCILEF_RESUMERECONCILIATION |
RECONCILEF_YOUMAYDOTHEUPDATES |
RECONCILEF_ONLYYOUWERECHANGED)
} RECONCILEF;
HRESULT Reconcile(
[in] IReconcileInitiator *pInitiator,
[in] DWORD dwFlags,
[in] HWND hwndOwner,
[in] HWND hwndProgressFeedback,
[in] ULONG cInput,
[in,unique,size_is(cInput,)] LPMONIKER *rgpmkOtherInput,
[out] LONG *plOutIndex,
[in,unique] IStorage *pstgNewResidues,
[in,unique] ULONG *pvReserved);
HRESULT GetProgressFeedbackMaxEstimate(
[out] ULONG *pulProgressMax);
}