Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
3.0 KiB

  1. //+---------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. // Copyright (c) Microsoft Corporation. All rights reserved.
  5. //
  6. // File: recobj.idl
  7. //
  8. // Contents: IDL definition for IReconcilableObject interface
  9. //
  10. // Classes:
  11. //
  12. // Functions:
  13. //
  14. // History: 12-12-94 SethuR Created from DavidDi's specs.
  15. //
  16. // Notes: There are a couple of issues regarding this interface that
  17. // needs to be ironed out.
  18. //
  19. // 1) How do we deal with Remote Invocation/execution if we have
  20. // HWND's as part of the arguments ?
  21. //
  22. // 2) How do we prevent having to know about the global topology
  23. // in the case of IReplicaNotify interface ?
  24. //
  25. //----------------------------------------------------------------------------
  26. #include "idlmulti.h"
  27. interface IReconcileInitiator;
  28. REMOTED_INTERFACE(99180162-DA16-101A-935C-444553540000)
  29. interface IReconcilableObject : IUnknown
  30. {
  31. typedef enum _reconcilef
  32. {
  33. // interaction with the user is allowed
  34. RECONCILEF_MAYBOTHERUSER = 0x0001,
  35. //
  36. // hwndProgressFeedback may be used to provide reconciliation progress
  37. // feedback to the user.
  38. //
  39. RECONCILEF_FEEDBACKWINDOWVALID = 0x0002, // BUGBUG
  40. // residue support not required
  41. RECONCILEF_NORESIDUESOK = 0x0004,
  42. // caller not interested in callee's residues
  43. RECONCILEF_OMITSELFRESIDUE = 0x0008,
  44. //
  45. // Reconcile() call resuming after a previous Reconcile() call returned
  46. // REC_E_NOTCOMPLETE
  47. //
  48. RECONCILEF_RESUMERECONCILIATION = 0x0010,
  49. // Object may perform all updates.
  50. RECONCILEF_YOUMAYDOTHEUPDATES = 0x0020,
  51. // Only this object has been changed.
  52. RECONCILEF_ONLYYOUWERECHANGED = 0x0040,
  53. // flag combinations
  54. ALL_RECONCILE_FLAGS = (RECONCILEF_MAYBOTHERUSER |
  55. RECONCILEF_FEEDBACKWINDOWVALID |
  56. RECONCILEF_NORESIDUESOK |
  57. RECONCILEF_OMITSELFRESIDUE |
  58. RECONCILEF_RESUMERECONCILIATION |
  59. RECONCILEF_YOUMAYDOTHEUPDATES |
  60. RECONCILEF_ONLYYOUWERECHANGED)
  61. } RECONCILEF;
  62. HRESULT Reconcile(
  63. [in] IReconcileInitiator *pInitiator,
  64. [in] DWORD dwFlags,
  65. [in] HWND hwndOwner,
  66. [in] HWND hwndProgressFeedback,
  67. [in] ULONG cInput,
  68. [in,unique,size_is(cInput,)] LPMONIKER *rgpmkOtherInput,
  69. [out] LONG *plOutIndex,
  70. [in,unique] IStorage *pstgNewResidues,
  71. [in,unique] ULONG *pvReserved);
  72. HRESULT GetProgressFeedbackMaxEstimate(
  73. [out] ULONG *pulProgressMax);
  74. }