From e611b132f9b8abe35b362e5870b74bce94a1e58e Mon Sep 17 00:00:00 2001 From: Adam Date: Sat, 16 May 2020 20:51:50 -0700 Subject: initial commit --- public/sdk/inc/reconcil.h | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 public/sdk/inc/reconcil.h (limited to 'public/sdk/inc/reconcil.h') diff --git a/public/sdk/inc/reconcil.h b/public/sdk/inc/reconcil.h new file mode 100644 index 000000000..68c226a35 --- /dev/null +++ b/public/sdk/inc/reconcil.h @@ -0,0 +1,201 @@ +/* + * reconcil.h - OLE reconciliation interface definitions. + */ + + +#ifndef __RECONCIL_H__ +#define __RECONCIL_H__ + + +/* Headers + **********/ + +#include + + +#ifdef __cplusplus +extern "C" { /* Assume C declarations for C++. */ +#endif /* __cplusplus */ + + +/* Constants + ************/ + +/* for use in IStorage::SetStateBits() */ + +#define STATEBITS_FLAT (0x0001) + +/* reconciliation SCODEs */ + +#define REC_S_IDIDTHEUPDATES MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1000) +#define REC_S_NOTCOMPLETE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1001) +#define REC_S_NOTCOMPLETEBUTPROPAGATE MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_ITF, 0x1002) + +#define REC_E_ABORTED MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1000) +#define REC_E_NOCALLBACK MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1001) +#define REC_E_NORESIDUES MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1002) +#define REC_E_TOODIFFERENT MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1003) +#define REC_E_INEEDTODOTHEUPDATES MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1004) + + +/* Interfaces + *************/ + +#undef INTERFACE +#define INTERFACE INotifyReplica + +DECLARE_INTERFACE_(INotifyReplica, IUnknown) +{ + /* IUnknown methods */ + + STDMETHOD(QueryInterface)(THIS_ + REFIID riid, + PVOID *ppvObject) PURE; + + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* INotifyReplica methods */ + + STDMETHOD(YouAreAReplica)(THIS_ + ULONG ulcOtherReplicas, + IMoniker **rgpmkOtherReplicas) PURE; +}; + +#undef INTERFACE +#define INTERFACE IReconcileInitiator + +DECLARE_INTERFACE_(IReconcileInitiator, IUnknown) +{ + /* IUnknown methods */ + + STDMETHOD(QueryInterface)(THIS_ + REFIID riid, + PVOID *ppvObject) PURE; + + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IReconcileInitiator methods */ + + STDMETHOD(SetAbortCallback)(THIS_ + IUnknown *punkForAbort) PURE; + + STDMETHOD(SetProgressFeedback)(THIS_ + ULONG ulProgress, + ULONG ulProgressMax) PURE; +}; + +/* IReconcilableObject::Reconcile() flags */ + +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, + + /* 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; + +#undef INTERFACE +#define INTERFACE IReconcilableObject + +DECLARE_INTERFACE_(IReconcilableObject, IUnknown) +{ + /* IUnknown methods */ + + STDMETHOD(QueryInterface)(THIS_ + REFIID riid, + PVOID *ppvObject) PURE; + + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IReconcilableObject methods */ + + STDMETHOD(Reconcile)(THIS_ + IReconcileInitiator *pInitiator, + DWORD dwFlags, + HWND hwndOwner, + HWND hwndProgressFeedback, + ULONG ulcInput, + IMoniker **rgpmkOtherInput, + PLONG plOutIndex, + IStorage *pstgNewResidues, + PVOID pvReserved) PURE; + + STDMETHOD(GetProgressFeedbackMaxEstimate)(THIS_ + PULONG pulProgressMax) PURE; +}; + +#undef INTERFACE +#define INTERFACE IBriefcaseInitiator + +DECLARE_INTERFACE_(IBriefcaseInitiator, IUnknown) +{ + /* IUnknown methods */ + + STDMETHOD(QueryInterface)(THIS_ + REFIID riid, + PVOID *ppvObject) PURE; + + STDMETHOD_(ULONG, AddRef)(THIS) PURE; + + STDMETHOD_(ULONG, Release)(THIS) PURE; + + /* IBriefcaseInitiator methods */ + + STDMETHOD(IsMonikerInBriefcase)(THIS_ + IMoniker *pmk) PURE; +}; + + +#ifdef __cplusplus +} /* End of extern "C" {. */ +#endif /* __cplusplus */ + + +#endif /* ! __RECONCIL_H__ */ + -- cgit v1.2.3