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.

211 lines
5.1 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(93BA4344-AA56-403e-87F2-819650FEDACD),
  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 RemountReadWrite")]
  55. HRESULT RemountReadWrite(
  56. [in] VSS_ID SnapshotId,
  57. [out] IVssAsync** ppAsync
  58. );
  59. [helpstring("method ImportSnapshots")]
  60. HRESULT ImportSnapshots(
  61. [in] BSTR bstrXMLSnapshotSet,
  62. [out] IVssAsync** ppAsync
  63. );
  64. [helpstring("method Query")]
  65. HRESULT Query(
  66. [in] VSS_ID QueriedObjectId,
  67. [in] VSS_OBJECT_TYPE eQueriedObjectType,
  68. [in] VSS_OBJECT_TYPE eReturnedObjectsType,
  69. [out] IVssEnumObject **ppEnum
  70. );
  71. [helpstring("method DeleteSnapshots")]
  72. HRESULT DeleteSnapshots(
  73. [in] VSS_ID SourceObjectId,
  74. [in] VSS_OBJECT_TYPE eSourceObjectType,
  75. [in] BOOL bForceDelete,
  76. [out] LONG* plDeletedSnapshots,
  77. [out] VSS_ID* pNondeletedSnapshotID
  78. );
  79. [helpstring("method BreakSnapshotSet")]
  80. HRESULT BreakSnapshotSet(
  81. [in] VSS_ID SnapshotSetId
  82. );
  83. [helpstring("method IsVolumeSupported")]
  84. HRESULT IsVolumeSupported(
  85. [in] VSS_ID ProviderId,
  86. [in] VSS_PWSZ pwszVolumeName,
  87. [out] BOOL * pbSupportedByThisProvider
  88. );
  89. [helpstring("method IsVolumeSnapshotted")]
  90. HRESULT IsVolumeSnapshotted(
  91. [in] VSS_ID ProviderId,
  92. [in] VSS_PWSZ pwszVolumeName,
  93. [out] BOOL * pbSnapshotsPresent,
  94. [out] LONG * plSnapshotCompatibility
  95. );
  96. [helpstring("method SetWriterInstances")]
  97. HRESULT SetWriterInstances(
  98. [in] LONG lWriterInstanceIdCount,
  99. [in, unique, size_is(lWriterInstanceIdCount)]
  100. VSS_ID *rgWriterInstanceId
  101. );
  102. };
  103. [
  104. object,
  105. uuid(D6222095-05C3-42f3-81D9-A4A0CEC05C26),
  106. helpstring("IVssShim interface"),
  107. pointer_default(unique)
  108. ]
  109. interface IVssShim : IUnknown
  110. {
  111. [helpstring("method SimulateSnapshotFreeze")]
  112. HRESULT SimulateSnapshotFreeze(
  113. [in] VSS_ID guidSnapshotSetId,
  114. [in] ULONG ulOptionFlags,
  115. [in] ULONG ulVolumeCount,
  116. [in, unique, size_is(ulVolumeCount, ) ]
  117. VSS_PWSZ* ppwszVolumeNamesArray,
  118. [out] IVssAsync** ppAsync
  119. );
  120. [helpstring("method SimulateSnapshotThaw")]
  121. HRESULT SimulateSnapshotThaw(
  122. [in] VSS_ID guidSnapshotSetId
  123. );
  124. [helpstring("method WaitForSubscribingCompletion")]
  125. HRESULT WaitForSubscribingCompletion();
  126. };
  127. [
  128. object,
  129. uuid(77ED5996-2F63-11d3-8A39-00C04F72D8E3),
  130. helpstring("IVssAdmin interface"),
  131. pointer_default(unique)
  132. ]
  133. interface IVssAdmin : IUnknown
  134. {
  135. [helpstring("method RegisterProvider")]
  136. HRESULT RegisterProvider(
  137. [in] VSS_ID pProviderId,
  138. [in] CLSID ClassId,
  139. [in] VSS_PWSZ pwszProviderName,
  140. [in] VSS_PROVIDER_TYPE eProviderType,
  141. [in] VSS_PWSZ pwszProviderVersion,
  142. [in] VSS_ID ProviderVersionId
  143. );
  144. [helpstring("method UnregisterProvider")]
  145. HRESULT UnregisterProvider(
  146. [in] VSS_ID ProviderId
  147. );
  148. [helpstring("method QueryProviders")]
  149. HRESULT QueryProviders(
  150. [out] IVssEnumObject**ppEnum
  151. );
  152. [helpstring("method AbortAllSnapshotsInProgress")]
  153. HRESULT AbortAllSnapshotsInProgress(
  154. );
  155. };
  156. ////////////////////////////////////////////////////////
  157. // VSS Type Library
  158. [
  159. uuid(97AEFDD8-2F60-11d3-8A39-00C04F72D8E3),
  160. version(1.0),
  161. helpstring("Volume Shadow Copy Service 1.0 Type Library")
  162. ]
  163. library VSS
  164. {
  165. importlib("stdole2.tlb");
  166. [
  167. uuid(E579AB5F-1CC4-44b4-BED9-DE0991FF0623),
  168. helpstring("VSSCoordinator Class")
  169. ]
  170. coclass VSSCoordinator
  171. {
  172. [default] interface IVssCoordinator;
  173. interface IVssAdmin;
  174. }
  175. }