Leaked source code of windows server 2003
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.

217 lines
5.5 KiB

  1. ///////////////////////////////////////////////////////////////////////////////
  2. //
  3. // Copyright (c) 2000 Microsoft Corporation
  4. //
  5. ///////////////////////////////////////////////////////////////////////////////
  6. // Imports
  7. //
  8. import "oaidl.idl";
  9. import "ocidl.idl";
  10. import "vss.idl";
  11. ///////////////////////////////////////////////////////////////////////////////
  12. // Interfaces
  13. //
  14. [
  15. object,
  16. uuid(da9f41d4-1a5d-41d0-a614-6dfd78df5d05),
  17. helpstring("IVssCoordinator interface"),
  18. pointer_default(unique)
  19. ]
  20. interface IVssCoordinator : IUnknown
  21. {
  22. [helpstring("method SetContext")]
  23. HRESULT SetContext(
  24. [in] LONG lContext
  25. );
  26. [helpstring("method StartSnapshotSet")]
  27. HRESULT StartSnapshotSet(
  28. [out] VSS_ID* pSnapshotSetId
  29. );
  30. [helpstring("method AddToSnapshotSet")]
  31. HRESULT AddToSnapshotSet(
  32. [in] VSS_PWSZ pwszVolumeName,
  33. [in] VSS_ID ProviderId,
  34. [out] VSS_ID *pSnapshotId
  35. );
  36. [helpstring("method DoSnapshotSet")]
  37. HRESULT DoSnapshotSet(
  38. [in] IDispatch *pWriterCallback,
  39. [out] IVssAsync** ppAsync
  40. );
  41. [helpstring("method GetSnapshotProperties")]
  42. HRESULT GetSnapshotProperties(
  43. [in] VSS_ID SnapshotId,
  44. [out] VSS_SNAPSHOT_PROP *pProp
  45. );
  46. [helpstring("method ExposeSnapshot")]
  47. HRESULT ExposeSnapshot(
  48. [in] VSS_ID SnapshotId,
  49. [in] VSS_PWSZ wszPathFromRoot,
  50. [in] LONG lAttributes,
  51. [in] VSS_PWSZ wszExpose,
  52. [out] VSS_PWSZ *pwszExposed
  53. );
  54. [helpstring("method ImportSnapshots")]
  55. HRESULT ImportSnapshots(
  56. [in] BSTR bstrXMLSnapshotSet,
  57. [out] IVssAsync** ppAsync
  58. );
  59. [helpstring("method Query")]
  60. HRESULT Query(
  61. [in] VSS_ID QueriedObjectId,
  62. [in] VSS_OBJECT_TYPE eQueriedObjectType,
  63. [in] VSS_OBJECT_TYPE eReturnedObjectsType,
  64. [out] IVssEnumObject **ppEnum
  65. );
  66. [helpstring("method DeleteSnapshots")]
  67. HRESULT DeleteSnapshots(
  68. [in] VSS_ID SourceObjectId,
  69. [in] VSS_OBJECT_TYPE eSourceObjectType,
  70. [in] BOOL bForceDelete,
  71. [out] LONG* plDeletedSnapshots,
  72. [out] VSS_ID* pNondeletedSnapshotID
  73. );
  74. [helpstring("method BreakSnapshotSet")]
  75. HRESULT BreakSnapshotSet(
  76. [in] VSS_ID SnapshotSetId
  77. );
  78. [helpstring("method RevertToSnapshot")]
  79. HRESULT RevertToSnapshot(
  80. [in] VSS_ID SnapshotId,
  81. [in] BOOL bForceDismount
  82. );
  83. [helpstring("method QueryRevertStatus")]
  84. HRESULT QueryRevertStatus(
  85. [in] VSS_PWSZ pwszVolume,
  86. [out] IVssAsync **ppAsync
  87. );
  88. [helpstring("method IsVolumeSupported")]
  89. HRESULT IsVolumeSupported(
  90. [in] VSS_ID ProviderId,
  91. [in] VSS_PWSZ pwszVolumeName,
  92. [out] BOOL * pbSupportedByThisProvider
  93. );
  94. [helpstring("method IsVolumeSnapshotted")]
  95. HRESULT IsVolumeSnapshotted(
  96. [in] VSS_ID ProviderId,
  97. [in] VSS_PWSZ pwszVolumeName,
  98. [out] BOOL * pbSnapshotsPresent,
  99. [out] LONG * plSnapshotCompatibility
  100. );
  101. [helpstring("method SetWriterInstances")]
  102. HRESULT SetWriterInstances(
  103. [in] LONG lWriterInstanceIdCount,
  104. [in, unique, size_is(lWriterInstanceIdCount)]
  105. VSS_ID *rgWriterInstanceId
  106. );
  107. };
  108. [
  109. object,
  110. uuid(D6222095-05C3-42f3-81D9-A4A0CEC05C26),
  111. helpstring("IVssShim interface"),
  112. pointer_default(unique)
  113. ]
  114. interface IVssShim : IUnknown
  115. {
  116. [helpstring("method SimulateSnapshotFreeze")]
  117. HRESULT SimulateSnapshotFreeze(
  118. [in] VSS_ID guidSnapshotSetId,
  119. [in] ULONG ulOptionFlags,
  120. [in] ULONG ulVolumeCount,
  121. [in, unique, size_is(ulVolumeCount, ) ]
  122. VSS_PWSZ* ppwszVolumeNamesArray,
  123. [out] IVssAsync** ppAsync
  124. );
  125. [helpstring("method SimulateSnapshotThaw")]
  126. HRESULT SimulateSnapshotThaw(
  127. [in] VSS_ID guidSnapshotSetId
  128. );
  129. [helpstring("method WaitForSubscribingCompletion")]
  130. HRESULT WaitForSubscribingCompletion();
  131. };
  132. [
  133. object,
  134. uuid(77ED5996-2F63-11d3-8A39-00C04F72D8E3),
  135. helpstring("IVssAdmin interface"),
  136. pointer_default(unique)
  137. ]
  138. interface IVssAdmin : IUnknown
  139. {
  140. [helpstring("method RegisterProvider")]
  141. HRESULT RegisterProvider(
  142. [in] VSS_ID pProviderId,
  143. [in] CLSID ClassId,
  144. [in] VSS_PWSZ pwszProviderName,
  145. [in] VSS_PROVIDER_TYPE eProviderType,
  146. [in] VSS_PWSZ pwszProviderVersion,
  147. [in] VSS_ID ProviderVersionId
  148. );
  149. [helpstring("method UnregisterProvider")]
  150. HRESULT UnregisterProvider(
  151. [in] VSS_ID ProviderId
  152. );
  153. [helpstring("method QueryProviders")]
  154. HRESULT QueryProviders(
  155. [out] IVssEnumObject**ppEnum
  156. );
  157. [helpstring("method AbortAllSnapshotsInProgress")]
  158. HRESULT AbortAllSnapshotsInProgress(
  159. );
  160. };
  161. ////////////////////////////////////////////////////////
  162. // VSS Type Library
  163. [
  164. uuid(97AEFDD8-2F60-11d3-8A39-00C04F72D8E3),
  165. version(1.0),
  166. helpstring("Volume Shadow Copy Service 1.0 Type Library")
  167. ]
  168. library VSS
  169. {
  170. importlib("stdole2.tlb");
  171. [
  172. uuid(E579AB5F-1CC4-44b4-BED9-DE0991FF0623),
  173. helpstring("VSSCoordinator Class")
  174. ]
  175. coclass VSSCoordinator
  176. {
  177. [default] interface IVssCoordinator;
  178. interface IVssAdmin;
  179. }
  180. }