zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

vss.h (17071B) - Raw


      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__
     23 typedef interface IVssEnumObject IVssEnumObject;
     24 #ifdef __cplusplus
     25 interface IVssEnumObject;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IVssAsync_FWD_DEFINED__
     30 #define __IVssAsync_FWD_DEFINED__
     31 typedef interface IVssAsync IVssAsync;
     32 #ifdef __cplusplus
     33 interface 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
     43 extern "C" {
     44 #endif
     45 
     46 #include <winapifamily.h>
     47 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     48 #include "vsserror.h" 
     49 
     50 typedef WCHAR *VSS_PWSZ;
     51 typedef LONGLONG VSS_TIMESTAMP;
     52 typedef GUID VSS_ID;
     53 
     54 typedef 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;
     62 typedef enum _VSS_OBJECT_TYPE *PVSS_OBJECT_TYPE;
     63 
     64 typedef 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;
     83 typedef enum _VSS_SNAPSHOT_STATE *PVSS_SNAPSHOT_STATE;
     84 
     85 typedef 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;
    106 typedef enum _VSS_VOLUME_SNAPSHOT_ATTRIBUTES *PVSS_VOLUME_SNAPSHOT_ATTRIBUTES;
    107 
    108 typedef 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;
    117 typedef enum _VSS_SNAPSHOT_CONTEXT *PVSS_SNAPSHOT_CONTEXT;
    118 
    119 typedef 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;
    131 typedef enum _VSS_PROVIDER_CAPABILITIES *PVSS_PROVIDER_CAPABILITIES;
    132 
    133 typedef 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;
    143 typedef enum _VSS_HARDWARE_OPTIONS *PVSS_HARDWARE_OPTIONS;
    144 
    145 typedef enum _VSS_RECOVERY_OPTIONS {
    146     VSS_RECOVERY_REVERT_IDENTITY_ALL = 0x100,
    147     VSS_RECOVERY_NO_VOLUME_CHECK = 0x200
    148 } VSS_RECOVERY_OPTIONS;
    149 typedef enum _VSS_RECOVERY_OPTIONS *PVSS_RECOVERY_OPTIONS;
    150 
    151 typedef 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;
    170 typedef enum _VSS_WRITER_STATE *PVSS_WRITER_STATE;
    171 
    172 typedef 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;
    181 typedef enum _VSS_BACKUP_TYPE *PVSS_BACKUP_TYPE;
    182 
    183 typedef 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;
    189 typedef enum _VSS_RESTORE_TYPE *PVSS_RESTORE_TYPE;
    190 
    191 typedef 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;
    197 typedef enum _VSS_ROLLFORWARD_TYPE *PVSS_ROLLFORWARD_TYPE;
    198 
    199 typedef 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;
    206 typedef enum _VSS_PROVIDER_TYPE *PVSS_PROVIDER_TYPE;
    207 
    208 typedef 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;
    216 typedef enum _VSS_APPLICATION_LEVEL *PVSS_APPLICATION_LEVEL;
    217 
    218 typedef enum _VSS_SNAPSHOT_COMPATIBILITY {
    219     VSS_SC_DISABLE_DEFRAG = 0x1,
    220     VSS_SC_DISABLE_CONTENTINDEX = 0x2
    221 } VSS_SNAPSHOT_COMPATIBILITY;
    222 
    223 typedef 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;
    239 typedef enum _VSS_SNAPSHOT_PROPERTY_ID *PVSS_SNAPSHOT_PROPERTY_ID;
    240 
    241 typedef 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;
    254 typedef enum _VSS_FILE_SPEC_BACKUP_TYPE *PVSS_FILE_SPEC_BACKUP_TYPE;
    255 
    256 typedef 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;
    274 typedef enum _VSS_BACKUP_SCHEMA *PVSS_BACKUP_SCHEMA;
    275 
    276 typedef 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;
    291 typedef struct _VSS_SNAPSHOT_PROP *PVSS_SNAPSHOT_PROP;
    292 
    293 typedef 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;
    301 typedef struct _VSS_PROVIDER_PROP *PVSS_PROVIDER_PROP;
    302 
    303 typedef union __WIDL_vss_generated_name_00000020 {
    304     VSS_SNAPSHOT_PROP Snap;
    305     VSS_PROVIDER_PROP Prov;
    306 } VSS_OBJECT_UNION;
    307 
    308 typedef struct _VSS_OBJECT_PROP {
    309     VSS_OBJECT_TYPE Type;
    310     VSS_OBJECT_UNION Obj;
    311 } VSS_OBJECT_PROP;
    312 typedef struct _VSS_OBJECT_PROP *PVSS_OBJECT_PROP;
    313 
    314 /*****************************************************************************
    315  * IVssEnumObject interface
    316  */
    317 #ifndef __IVssEnumObject_INTERFACE_DEFINED__
    318 #define __IVssEnumObject_INTERFACE_DEFINED__
    319 
    320 DEFINE_GUID(IID_IVssEnumObject, 0xae1c7110, 0x2f60, 0x11d3, 0x8a,0x39, 0x00,0xc0,0x4f,0x72,0xd8,0xe3);
    321 #if defined(__cplusplus) && !defined(CINTERFACE)
    322 MIDL_INTERFACE("ae1c7110-2f60-11d3-8a39-00c04f72d8e3")
    323 IVssEnumObject : 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
    344 typedef 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 
    380 interface 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 ***/
    397 static inline HRESULT IVssEnumObject_QueryInterface(IVssEnumObject* This,REFIID riid,void **ppvObject) {
    398     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    399 }
    400 static inline ULONG IVssEnumObject_AddRef(IVssEnumObject* This) {
    401     return This->lpVtbl->AddRef(This);
    402 }
    403 static inline ULONG IVssEnumObject_Release(IVssEnumObject* This) {
    404     return This->lpVtbl->Release(This);
    405 }
    406 /*** IVssEnumObject methods ***/
    407 static inline HRESULT IVssEnumObject_Next(IVssEnumObject* This,ULONG celt,VSS_OBJECT_PROP *rgelt,ULONG *pceltFetched) {
    408     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
    409 }
    410 static inline HRESULT IVssEnumObject_Skip(IVssEnumObject* This,ULONG celt) {
    411     return This->lpVtbl->Skip(This,celt);
    412 }
    413 static inline HRESULT IVssEnumObject_Reset(IVssEnumObject* This) {
    414     return This->lpVtbl->Reset(This);
    415 }
    416 static 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 
    434 DEFINE_GUID(IID_IVssAsync, 0x507c37b4, 0xcf5b, 0x4e95, 0xb0,0xaf, 0x14,0xeb,0x97,0x67,0x46,0x7e);
    435 #if defined(__cplusplus) && !defined(CINTERFACE)
    436 MIDL_INTERFACE("507c37b4-cf5b-4e95-b0af-14eb9767467e")
    437 IVssAsync : 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
    454 typedef 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 
    485 interface 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 ***/
    501 static inline HRESULT IVssAsync_QueryInterface(IVssAsync* This,REFIID riid,void **ppvObject) {
    502     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    503 }
    504 static inline ULONG IVssAsync_AddRef(IVssAsync* This) {
    505     return This->lpVtbl->AddRef(This);
    506 }
    507 static inline ULONG IVssAsync_Release(IVssAsync* This) {
    508     return This->lpVtbl->Release(This);
    509 }
    510 /*** IVssAsync methods ***/
    511 static inline HRESULT IVssAsync_Cancel(IVssAsync* This) {
    512     return This->lpVtbl->Cancel(This);
    513 }
    514 static inline HRESULT IVssAsync_Wait(IVssAsync* This,DWORD dwMilliseconds) {
    515     return This->lpVtbl->Wait(This,dwMilliseconds);
    516 }
    517 static 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__ */