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__ */