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