vss.h 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538
  1. /*** Autogenerated by WIDL 7.7 from include/vss.idl - Do not edit ***/
  2. #ifdef _WIN32
  3. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  4. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  5. #endif
  6. #include <rpc.h>
  7. #include <rpcndr.h>
  8. #endif
  9. #ifndef COM_NO_WINDOWS_H
  10. #include <windows.h>
  11. #include <ole2.h>
  12. #endif
  13. #ifndef __vss_h__
  14. #define __vss_h__
  15. /* Forward declarations */
  16. #ifndef __IVssEnumObject_FWD_DEFINED__
  17. #define __IVssEnumObject_FWD_DEFINED__
  18. typedef interface IVssEnumObject IVssEnumObject;
  19. #ifdef __cplusplus
  20. interface IVssEnumObject;
  21. #endif /* __cplusplus */
  22. #endif
  23. #ifndef __IVssAsync_FWD_DEFINED__
  24. #define __IVssAsync_FWD_DEFINED__
  25. typedef interface IVssAsync IVssAsync;
  26. #ifdef __cplusplus
  27. interface IVssAsync;
  28. #endif /* __cplusplus */
  29. #endif
  30. /* Headers for imported files */
  31. #include <oaidl.h>
  32. #include <ocidl.h>
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36. #include <winapifamily.h>
  37. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  38. #include "vsserror.h"
  39. typedef WCHAR *VSS_PWSZ;
  40. typedef LONGLONG VSS_TIMESTAMP;
  41. typedef GUID VSS_ID;
  42. typedef enum _VSS_OBJECT_TYPE {
  43. VSS_OBJECT_UNKNOWN = 0,
  44. VSS_OBJECT_NONE = 1,
  45. VSS_OBJECT_SNAPSHOT_SET = 2,
  46. VSS_OBJECT_SNAPSHOT = 3,
  47. VSS_OBJECT_PROVIDER = 4,
  48. VSS_OBJECT_TYPE_COUNT = 5
  49. } VSS_OBJECT_TYPE;
  50. typedef enum _VSS_OBJECT_TYPE *PVSS_OBJECT_TYPE;
  51. typedef enum _VSS_SNAPSHOT_STATE {
  52. VSS_SS_UNKNOWN = 0,
  53. VSS_SS_PREPARING = 1,
  54. VSS_SS_PROCESSING_PREPARE = 2,
  55. VSS_SS_PREPARED = 3,
  56. VSS_SS_PROCESSING_PRECOMMIT = 4,
  57. VSS_SS_PRECOMMITTED = 5,
  58. VSS_SS_PROCESSING_COMMIT = 6,
  59. VSS_SS_COMMITTED = 7,
  60. VSS_SS_PROCESSING_POSTCOMMIT = 8,
  61. VSS_SS_PROCESSING_PREFINALCOMMIT = 9,
  62. VSS_SS_PREFINALCOMMITTED = 10,
  63. VSS_SS_PROCESSING_POSTFINALCOMMIT = 11,
  64. VSS_SS_CREATED = 12,
  65. VSS_SS_ABORTED = 13,
  66. VSS_SS_DELETED = 14,
  67. VSS_SS_POSTCOMMITTED = 15,
  68. VSS_SS_COUNT = 16
  69. } VSS_SNAPSHOT_STATE;
  70. typedef enum _VSS_SNAPSHOT_STATE *PVSS_SNAPSHOT_STATE;
  71. typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES {
  72. VSS_VOLSNAP_ATTR_PERSISTENT = 0x1,
  73. VSS_VOLSNAP_ATTR_NO_AUTORECOVERY = 0x2,
  74. VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE = 0x4,
  75. VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE = 0x8,
  76. VSS_VOLSNAP_ATTR_NO_WRITERS = 0x10,
  77. VSS_VOLSNAP_ATTR_TRANSPORTABLE = 0x20,
  78. VSS_VOLSNAP_ATTR_NOT_SURFACED = 0x40,
  79. VSS_VOLSNAP_ATTR_NOT_TRANSACTED = 0x80,
  80. VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED = 0x10000,
  81. VSS_VOLSNAP_ATTR_DIFFERENTIAL = 0x20000,
  82. VSS_VOLSNAP_ATTR_PLEX = 0x40000,
  83. VSS_VOLSNAP_ATTR_IMPORTED = 0x80000,
  84. VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY = 0x100000,
  85. VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY = 0x200000,
  86. VSS_VOLSNAP_ATTR_AUTORECOVER = 0x400000,
  87. VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY = 0x800000,
  88. VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT = 0x1000000,
  89. VSS_VOLSNAP_ATTR_TXF_RECOVERY = 0x2000000,
  90. VSS_VOLSNAP_ATTR_FILE_SHARE = 0x4000000
  91. } VSS_VOLUME_SNAPSHOT_ATTRIBUTES;
  92. typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES;
  93. typedef enum _VSS_SNAPSHOT_CONTEXT {
  94. VSS_CTX_BACKUP = 0x0,
  95. VSS_CTX_FILE_SHARE_BACKUP = VSS_VOLSNAP_ATTR_NO_WRITERS,
  96. VSS_CTX_NAS_ROLLBACK = (VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE) | VSS_VOLSNAP_ATTR_NO_WRITERS,
  97. VSS_CTX_APP_ROLLBACK = VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE,
  98. VSS_CTX_CLIENT_ACCESSIBLE = ((VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE) | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE) | VSS_VOLSNAP_ATTR_NO_WRITERS,
  99. VSS_CTX_CLIENT_ACCESSIBLE_WRITERS = (VSS_VOLSNAP_ATTR_PERSISTENT | VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE) | VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE,
  100. VSS_CTX_ALL = 0xffffffff
  101. } VSS_SNAPSHOT_CONTEXT;
  102. typedef enum _VSS_SNAPSHOT_CONTEXT *PVSS_SNAPSHOT_CONTEXT;
  103. typedef enum _VSS_PROVIDER_CAPABILITIES {
  104. VSS_PRV_CAPABILITY_LEGACY = 0x1,
  105. VSS_PRV_CAPABILITY_COMPLIANT = 0x2,
  106. VSS_PRV_CAPABILITY_LUN_REPOINT = 0x4,
  107. VSS_PRV_CAPABILITY_LUN_RESYNC = 0x8,
  108. VSS_PRV_CAPABILITY_OFFLINE_CREATION = 0x10,
  109. VSS_PRV_CAPABILITY_MULTIPLE_IMPORT = 0x20,
  110. VSS_PRV_CAPABILITY_RECYCLING = 0x40,
  111. VSS_PRV_CAPABILITY_PLEX = 0x80,
  112. VSS_PRV_CAPABILITY_DIFFERENTIAL = 0x100,
  113. VSS_PRV_CAPABILITY_CLUSTERED = 0x200
  114. } VSS_PROVIDER_CAPABILITIES;
  115. typedef enum _VSS_PROVIDER_CAPABILITIES *PVSS_PROVIDER_CAPABILITIES;
  116. typedef enum _VSS_HARDWARE_OPTIONS {
  117. VSS_BREAKEX_FLAG_MASK_LUNS = 0x1,
  118. VSS_BREAKEX_FLAG_MAKE_READ_WRITE = 0x2,
  119. VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL = 0x4,
  120. VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE = 0x8,
  121. VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE = 0x100,
  122. VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY = 0x200,
  123. VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY = 0x400,
  124. VSS_ONLUNSTATECHANGE_DO_MASK_LUNS = 0x800
  125. } VSS_HARDWARE_OPTIONS;
  126. typedef enum _VSS_HARDWARE_OPTIONS *PVSS_HARDWARE_OPTIONS;
  127. typedef enum _VSS_RECOVERY_OPTIONS {
  128. VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x100,
  129. VSS_RECOVERY_NO_VOLUME_CHECK = 0x200
  130. } VSS_RECOVERY_OPTIONS;
  131. typedef enum _VSS_RECOVERY_OPTIONS *PVSS_RECOVERY_OPTIONS;
  132. typedef enum _VSS_WRITER_STATE {
  133. VSS_WS_UNKNOWN = 0,
  134. VSS_WS_STABLE = 1,
  135. VSS_WS_WAITING_FOR_FREEZE = 2,
  136. VSS_WS_WAITING_FOR_THAW = 3,
  137. VSS_WS_WAITING_FOR_POST_SNAPSHOT = 4,
  138. VSS_WS_WAITING_FOR_BACKUP_COMPLETE = 5,
  139. VSS_WS_FAILED_AT_IDENTIFY = 6,
  140. VSS_WS_FAILED_AT_PREPARE_BACKUP = 7,
  141. VSS_WS_FAILED_AT_PREPARE_SNAPSHOT = 8,
  142. VSS_WS_FAILED_AT_FREEZE = 9,
  143. VSS_WS_FAILED_AT_THAW = 10,
  144. VSS_WS_FAILED_AT_POST_SNAPSHOT = 11,
  145. VSS_WS_FAILED_AT_BACKUP_COMPLETE = 12,
  146. VSS_WS_FAILED_AT_PRE_RESTORE = 13,
  147. VSS_WS_FAILED_AT_POST_RESTORE = 14,
  148. VSS_WS_FAILED_AT_BACKUPSHUTDOWN = 15,
  149. VSS_WS_COUNT = 16
  150. } VSS_WRITER_STATE;
  151. typedef enum _VSS_WRITER_STATE *PVSS_WRITER_STATE;
  152. typedef enum _VSS_BACKUP_TYPE {
  153. VSS_BT_UNDEFINED = 0,
  154. VSS_BT_FULL = 1,
  155. VSS_BT_INCREMENTAL = 2,
  156. VSS_BT_DIFFERENTIAL = 3,
  157. VSS_BT_LOG = 4,
  158. VSS_BT_COPY = 5,
  159. VSS_BT_OTHER = 6
  160. } VSS_BACKUP_TYPE;
  161. typedef enum _VSS_BACKUP_TYPE *PVSS_BACKUP_TYPE;
  162. typedef enum _VSS_RESTORE_TYPE {
  163. VSS_RTYPE_UNDEFINED = 0,
  164. VSS_RTYPE_BY_COPY = 1,
  165. VSS_RTYPE_IMPORT = 2,
  166. VSS_RTYPE_OTHER = 3
  167. } VSS_RESTORE_TYPE;
  168. typedef enum _VSS_RESTORE_TYPE *PVSS_RESTORE_TYPE;
  169. typedef enum _VSS_ROLLFORWARD_TYPE {
  170. VSS_RF_UNDEFINED = 0,
  171. VSS_RF_NONE = 1,
  172. VSS_RF_ALL = 2,
  173. VSS_RF_PARTIAL = 3
  174. } VSS_ROLLFORWARD_TYPE;
  175. typedef enum _VSS_ROLLFORWARD_TYPE *PVSS_ROLLFORWARD_TYPE;
  176. typedef enum _VSS_PROVIDER_TYPE {
  177. VSS_PROV_UNKNOWN = 0,
  178. VSS_PROV_SYSTEM = 1,
  179. VSS_PROV_SOFTWARE = 2,
  180. VSS_PROV_HARDWARE = 3,
  181. VSS_PROV_FILESHARE = 4
  182. } VSS_PROVIDER_TYPE;
  183. typedef enum _VSS_PROVIDER_TYPE *PVSS_PROVIDER_TYPE;
  184. typedef enum _VSS_APPLICATION_LEVEL {
  185. VSS_APP_UNKNOWN = 0,
  186. VSS_APP_SYSTEM = 1,
  187. VSS_APP_BACK_END = 2,
  188. VSS_APP_FRONT_END = 3,
  189. VSS_APP_SYSTEM_RM = 4,
  190. VSS_APP_AUTO = -1
  191. } VSS_APPLICATION_LEVEL;
  192. typedef enum _VSS_APPLICATION_LEVEL *PVSS_APPLICATION_LEVEL;
  193. typedef enum _VSS_SNAPSHOT_COMPATIBILITY {
  194. VSS_SC_DISABLE_DEFRAG = 0x1,
  195. VSS_SC_DISABLE_CONTENTINDEX = 0x2
  196. } VSS_SNAPSHOT_COMPATIBILITY;
  197. typedef enum _VSS_SNAPSHOT_PROPERTY_ID {
  198. VSS_SPROPID_UNKNOWN = 0x0,
  199. VSS_SPROPID_SNAPSHOT_ID = 0x1,
  200. VSS_SPROPID_SNAPSHOT_SET_ID = 0x2,
  201. VSS_SPROPID_SNAPSHOTS_COUNT = 0x3,
  202. VSS_SPROPID_SNAPSHOT_DEVICE = 0x4,
  203. VSS_SPROPID_ORIGINAL_VOLUME = 0x5,
  204. VSS_SPROPID_ORIGINATING_MACHINE = 0x6,
  205. VSS_SPROPID_SERVICE_MACHINE = 0x7,
  206. VSS_SPROPID_EXPOSED_NAME = 0x8,
  207. VSS_SPROPID_EXPOSED_PATH = 0x9,
  208. VSS_SPROPID_PROVIDER_ID = 0xa,
  209. VSS_SPROPID_SNAPSHOT_ATTRIBUTES = 0xb,
  210. VSS_SPROPID_CREATION_TIMESTAMP = 0xc,
  211. VSS_SPROPID_STATUS = 0xd
  212. } VSS_SNAPSHOT_PROPERTY_ID;
  213. typedef enum _VSS_SNAPSHOT_PROPERTY_ID *PVSS_SNAPSHOT_PROPERTY_ID;
  214. typedef enum _VSS_FILE_SPEC_BACKUP_TYPE {
  215. VSS_FSBT_FULL_BACKUP_REQUIRED = 0x1,
  216. VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED = 0x2,
  217. VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED = 0x4,
  218. VSS_FSBT_LOG_BACKUP_REQUIRED = 0x8,
  219. VSS_FSBT_FULL_SNAPSHOT_REQUIRED = 0x100,
  220. VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED = 0x200,
  221. VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED = 0x400,
  222. VSS_FSBT_LOG_SNAPSHOT_REQUIRED = 0x800,
  223. VSS_FSBT_CREATED_DURING_BACKUP = 0x10000,
  224. VSS_FSBT_ALL_BACKUP_REQUIRED = 0xf,
  225. VSS_FSBT_ALL_SNAPSHOT_REQUIRED = 0xf00
  226. } VSS_FILE_SPEC_BACKUP_TYPE;
  227. typedef enum _VSS_FILE_SPEC_BACKUP_TYPE *PVSS_FILE_SPEC_BACKUP_TYPE;
  228. typedef enum _VSS_BACKUP_SCHEMA {
  229. VSS_BS_UNDEFINED = 0x0,
  230. VSS_BS_DIFFERENTIAL = 0x1,
  231. VSS_BS_INCREMENTAL = 0x2,
  232. VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL = 0x4,
  233. VSS_BS_LOG = 0x8,
  234. VSS_BS_COPY = 0x10,
  235. VSS_BS_TIMESTAMPED = 0x20,
  236. VSS_BS_LAST_MODIFY = 0x40,
  237. VSS_BS_LSN = 0x80,
  238. VSS_BS_WRITER_SUPPORTS_NEW_TARGET = 0x100,
  239. VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE = 0x200,
  240. VSS_BS_INDEPENDENT_SYSTEM_STATE = 0x400,
  241. VSS_BS_ROLLFORWARD_RESTORE = 0x1000,
  242. VSS_BS_RESTORE_RENAME = 0x2000,
  243. VSS_BS_AUTHORITATIVE_RESTORE = 0x4000,
  244. VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES = 0x8000
  245. } VSS_BACKUP_SCHEMA;
  246. typedef enum _VSS_BACKUP_SCHEMA *PVSS_BACKUP_SCHEMA;
  247. typedef struct _VSS_SNAPSHOT_PROP {
  248. VSS_ID m_SnapshotId;
  249. VSS_ID m_SnapshotSetId;
  250. LONG m_lSnapshotsCount;
  251. VSS_PWSZ m_pwszSnapshotDeviceObject;
  252. VSS_PWSZ m_pwszOriginalVolumeName;
  253. VSS_PWSZ m_pwszOriginatingMachine;
  254. VSS_PWSZ m_pwszServiceMachine;
  255. VSS_PWSZ m_pwszExposedName;
  256. VSS_PWSZ m_pwszExposedPath;
  257. VSS_ID m_ProviderId;
  258. LONG m_lSnapshotAttributes;
  259. VSS_TIMESTAMP m_tsCreationTimestamp;
  260. VSS_SNAPSHOT_STATE m_eStatus;
  261. } VSS_SNAPSHOT_PROP;
  262. typedef struct _VSS_SNAPSHOT_PROP *PVSS_SNAPSHOT_PROP;
  263. typedef struct _VSS_PROVIDER_PROP {
  264. VSS_ID m_ProviderId;
  265. VSS_PWSZ m_pwszProviderName;
  266. VSS_PROVIDER_TYPE m_eProviderType;
  267. VSS_PWSZ m_pwszProviderVersion;
  268. VSS_ID m_ProviderVersionId;
  269. CLSID m_ClassId;
  270. } VSS_PROVIDER_PROP;
  271. typedef struct _VSS_PROVIDER_PROP *PVSS_PROVIDER_PROP;
  272. typedef union __WIDL_vss_generated_name_00000020 {
  273. VSS_SNAPSHOT_PROP Snap;
  274. VSS_PROVIDER_PROP Prov;
  275. } VSS_OBJECT_UNION;
  276. typedef struct _VSS_OBJECT_PROP {
  277. VSS_OBJECT_TYPE Type;
  278. VSS_OBJECT_UNION Obj;
  279. } VSS_OBJECT_PROP;
  280. typedef struct _VSS_OBJECT_PROP *PVSS_OBJECT_PROP;
  281. /*****************************************************************************
  282. * IVssEnumObject interface
  283. */
  284. #ifndef __IVssEnumObject_INTERFACE_DEFINED__
  285. #define __IVssEnumObject_INTERFACE_DEFINED__
  286. DEFINE_GUID(IID_IVssEnumObject, 0xae1c7110, 0x2f60, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3);
  287. #if defined(__cplusplus) && !defined(CINTERFACE)
  288. MIDL_INTERFACE("ae1c7110-2f60-11d3-8a39-00c04f72d8e3")
  289. IVssEnumObject : public IUnknown
  290. {
  291. virtual HRESULT STDMETHODCALLTYPE Next(
  292. ULONG celt,
  293. VSS_OBJECT_PROP *rgelt,
  294. ULONG *pceltFetched) = 0;
  295. virtual HRESULT STDMETHODCALLTYPE Skip(
  296. ULONG celt) = 0;
  297. virtual HRESULT STDMETHODCALLTYPE Reset(
  298. ) = 0;
  299. virtual HRESULT STDMETHODCALLTYPE Clone(
  300. IVssEnumObject **ppenum) = 0;
  301. };
  302. #ifdef __CRT_UUID_DECL
  303. __CRT_UUID_DECL(IVssEnumObject, 0xae1c7110, 0x2f60, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3)
  304. #endif
  305. #else
  306. typedef struct IVssEnumObjectVtbl {
  307. BEGIN_INTERFACE
  308. /*** IUnknown methods ***/
  309. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  310. IVssEnumObject *This,
  311. REFIID riid,
  312. void **ppvObject);
  313. ULONG (STDMETHODCALLTYPE *AddRef)(
  314. IVssEnumObject *This);
  315. ULONG (STDMETHODCALLTYPE *Release)(
  316. IVssEnumObject *This);
  317. /*** IVssEnumObject methods ***/
  318. HRESULT (STDMETHODCALLTYPE *Next)(
  319. IVssEnumObject *This,
  320. ULONG celt,
  321. VSS_OBJECT_PROP *rgelt,
  322. ULONG *pceltFetched);
  323. HRESULT (STDMETHODCALLTYPE *Skip)(
  324. IVssEnumObject *This,
  325. ULONG celt);
  326. HRESULT (STDMETHODCALLTYPE *Reset)(
  327. IVssEnumObject *This);
  328. HRESULT (STDMETHODCALLTYPE *Clone)(
  329. IVssEnumObject *This,
  330. IVssEnumObject **ppenum);
  331. END_INTERFACE
  332. } IVssEnumObjectVtbl;
  333. interface IVssEnumObject {
  334. CONST_VTBL IVssEnumObjectVtbl* lpVtbl;
  335. };
  336. #ifdef COBJMACROS
  337. #ifndef WIDL_C_INLINE_WRAPPERS
  338. /*** IUnknown methods ***/
  339. #define IVssEnumObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  340. #define IVssEnumObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  341. #define IVssEnumObject_Release(This) (This)->lpVtbl->Release(This)
  342. /*** IVssEnumObject methods ***/
  343. #define IVssEnumObject_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  344. #define IVssEnumObject_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  345. #define IVssEnumObject_Reset(This) (This)->lpVtbl->Reset(This)
  346. #define IVssEnumObject_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  347. #else
  348. /*** IUnknown methods ***/
  349. static FORCEINLINE HRESULT IVssEnumObject_QueryInterface(IVssEnumObject* This,REFIID riid,void **ppvObject) {
  350. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  351. }
  352. static FORCEINLINE ULONG IVssEnumObject_AddRef(IVssEnumObject* This) {
  353. return This->lpVtbl->AddRef(This);
  354. }
  355. static FORCEINLINE ULONG IVssEnumObject_Release(IVssEnumObject* This) {
  356. return This->lpVtbl->Release(This);
  357. }
  358. /*** IVssEnumObject methods ***/
  359. static FORCEINLINE HRESULT IVssEnumObject_Next(IVssEnumObject* This,ULONG celt,VSS_OBJECT_PROP *rgelt,ULONG *pceltFetched) {
  360. return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
  361. }
  362. static FORCEINLINE HRESULT IVssEnumObject_Skip(IVssEnumObject* This,ULONG celt) {
  363. return This->lpVtbl->Skip(This,celt);
  364. }
  365. static FORCEINLINE HRESULT IVssEnumObject_Reset(IVssEnumObject* This) {
  366. return This->lpVtbl->Reset(This);
  367. }
  368. static FORCEINLINE HRESULT IVssEnumObject_Clone(IVssEnumObject* This,IVssEnumObject **ppenum) {
  369. return This->lpVtbl->Clone(This,ppenum);
  370. }
  371. #endif
  372. #endif
  373. #endif
  374. #endif /* __IVssEnumObject_INTERFACE_DEFINED__ */
  375. /*****************************************************************************
  376. * IVssAsync interface
  377. */
  378. #ifndef __IVssAsync_INTERFACE_DEFINED__
  379. #define __IVssAsync_INTERFACE_DEFINED__
  380. DEFINE_GUID(IID_IVssAsync, 0x507c37b4, 0xcf5b, 0x4e95, 0xb0,0xaf, 0x14,0xeb,0x97,0x67,0x46,0x7e);
  381. #if defined(__cplusplus) && !defined(CINTERFACE)
  382. MIDL_INTERFACE("507c37b4-cf5b-4e95-b0af-14eb9767467e")
  383. IVssAsync : public IUnknown
  384. {
  385. virtual HRESULT STDMETHODCALLTYPE Cancel(
  386. ) = 0;
  387. virtual HRESULT STDMETHODCALLTYPE Wait(
  388. DWORD dwMilliseconds = 0xffffffff) = 0;
  389. virtual HRESULT STDMETHODCALLTYPE QueryStatus(
  390. HRESULT *pHrResult,
  391. INT *pReserved) = 0;
  392. };
  393. #ifdef __CRT_UUID_DECL
  394. __CRT_UUID_DECL(IVssAsync, 0x507c37b4, 0xcf5b, 0x4e95, 0xb0,0xaf, 0x14,0xeb,0x97,0x67,0x46,0x7e)
  395. #endif
  396. #else
  397. typedef struct IVssAsyncVtbl {
  398. BEGIN_INTERFACE
  399. /*** IUnknown methods ***/
  400. HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  401. IVssAsync *This,
  402. REFIID riid,
  403. void **ppvObject);
  404. ULONG (STDMETHODCALLTYPE *AddRef)(
  405. IVssAsync *This);
  406. ULONG (STDMETHODCALLTYPE *Release)(
  407. IVssAsync *This);
  408. /*** IVssAsync methods ***/
  409. HRESULT (STDMETHODCALLTYPE *Cancel)(
  410. IVssAsync *This);
  411. HRESULT (STDMETHODCALLTYPE *Wait)(
  412. IVssAsync *This,
  413. DWORD dwMilliseconds);
  414. HRESULT (STDMETHODCALLTYPE *QueryStatus)(
  415. IVssAsync *This,
  416. HRESULT *pHrResult,
  417. INT *pReserved);
  418. END_INTERFACE
  419. } IVssAsyncVtbl;
  420. interface IVssAsync {
  421. CONST_VTBL IVssAsyncVtbl* lpVtbl;
  422. };
  423. #ifdef COBJMACROS
  424. #ifndef WIDL_C_INLINE_WRAPPERS
  425. /*** IUnknown methods ***/
  426. #define IVssAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  427. #define IVssAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
  428. #define IVssAsync_Release(This) (This)->lpVtbl->Release(This)
  429. /*** IVssAsync methods ***/
  430. #define IVssAsync_Cancel(This) (This)->lpVtbl->Cancel(This)
  431. #define IVssAsync_Wait(This,dwMilliseconds) (This)->lpVtbl->Wait(This,dwMilliseconds)
  432. #define IVssAsync_QueryStatus(This,pHrResult,pReserved) (This)->lpVtbl->QueryStatus(This,pHrResult,pReserved)
  433. #else
  434. /*** IUnknown methods ***/
  435. static FORCEINLINE HRESULT IVssAsync_QueryInterface(IVssAsync* This,REFIID riid,void **ppvObject) {
  436. return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  437. }
  438. static FORCEINLINE ULONG IVssAsync_AddRef(IVssAsync* This) {
  439. return This->lpVtbl->AddRef(This);
  440. }
  441. static FORCEINLINE ULONG IVssAsync_Release(IVssAsync* This) {
  442. return This->lpVtbl->Release(This);
  443. }
  444. /*** IVssAsync methods ***/
  445. static FORCEINLINE HRESULT IVssAsync_Cancel(IVssAsync* This) {
  446. return This->lpVtbl->Cancel(This);
  447. }
  448. static FORCEINLINE HRESULT IVssAsync_Wait(IVssAsync* This,DWORD dwMilliseconds) {
  449. return This->lpVtbl->Wait(This,dwMilliseconds);
  450. }
  451. static FORCEINLINE HRESULT IVssAsync_QueryStatus(IVssAsync* This,HRESULT *pHrResult,INT *pReserved) {
  452. return This->lpVtbl->QueryStatus(This,pHrResult,pReserved);
  453. }
  454. #endif
  455. #endif
  456. #endif
  457. #endif /* __IVssAsync_INTERFACE_DEFINED__ */
  458. #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
  459. /* Begin additional prototypes for all interfaces */
  460. /* End additional prototypes */
  461. #ifdef __cplusplus
  462. }
  463. #endif
  464. #endif /* __vss_h__ */