zig

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

vsprov.h (50025B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/vsprov.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 __vsprov_h__
     17 #define __vsprov_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IVssSoftwareSnapshotProvider_FWD_DEFINED__
     22 #define __IVssSoftwareSnapshotProvider_FWD_DEFINED__
     23 typedef interface IVssSoftwareSnapshotProvider IVssSoftwareSnapshotProvider;
     24 #ifdef __cplusplus
     25 interface IVssSoftwareSnapshotProvider;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IVssProviderCreateSnapshotSet_FWD_DEFINED__
     30 #define __IVssProviderCreateSnapshotSet_FWD_DEFINED__
     31 typedef interface IVssProviderCreateSnapshotSet IVssProviderCreateSnapshotSet;
     32 #ifdef __cplusplus
     33 interface IVssProviderCreateSnapshotSet;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IVssProviderNotifications_FWD_DEFINED__
     38 #define __IVssProviderNotifications_FWD_DEFINED__
     39 typedef interface IVssProviderNotifications IVssProviderNotifications;
     40 #ifdef __cplusplus
     41 interface IVssProviderNotifications;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IVssHardwareSnapshotProvider_FWD_DEFINED__
     46 #define __IVssHardwareSnapshotProvider_FWD_DEFINED__
     47 typedef interface IVssHardwareSnapshotProvider IVssHardwareSnapshotProvider;
     48 #ifdef __cplusplus
     49 interface IVssHardwareSnapshotProvider;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
     54 #define __IVssHardwareSnapshotProviderEx_FWD_DEFINED__
     55 typedef interface IVssHardwareSnapshotProviderEx IVssHardwareSnapshotProviderEx;
     56 #ifdef __cplusplus
     57 interface IVssHardwareSnapshotProviderEx;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IVssFileShareSnapshotProvider_FWD_DEFINED__
     62 #define __IVssFileShareSnapshotProvider_FWD_DEFINED__
     63 typedef interface IVssFileShareSnapshotProvider IVssFileShareSnapshotProvider;
     64 #ifdef __cplusplus
     65 interface IVssFileShareSnapshotProvider;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 /* Headers for imported files */
     70 
     71 #include <oaidl.h>
     72 #include <ocidl.h>
     73 #include <vss.h>
     74 #include <vdslun.h>
     75 
     76 #ifdef __cplusplus
     77 extern "C" {
     78 #endif
     79 
     80 #include <winapifamily.h>
     81 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
     82 #ifndef __IVssSnapshotProvider_FWD_DEFINED__
     83 #define __IVssSnapshotProvider_FWD_DEFINED__
     84 typedef interface IVssSnapshotProvider IVssSnapshotProvider;
     85 #ifdef __cplusplus
     86 interface IVssSnapshotProvider;
     87 #endif /* __cplusplus */
     88 #endif
     89 
     90 #ifndef __IVssProviderNotifications_FWD_DEFINED__
     91 #define __IVssProviderNotifications_FWD_DEFINED__
     92 typedef interface IVssProviderNotifications IVssProviderNotifications;
     93 #ifdef __cplusplus
     94 interface IVssProviderNotifications;
     95 #endif /* __cplusplus */
     96 #endif
     97 
     98 typedef VSS_PWSZ *PVSS_PWSZ;
     99 /*****************************************************************************
    100  * IVssSoftwareSnapshotProvider interface
    101  */
    102 #ifndef __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
    103 #define __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__
    104 
    105 DEFINE_GUID(IID_IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff);
    106 #if defined(__cplusplus) && !defined(CINTERFACE)
    107 MIDL_INTERFACE("609e123e-2c5a-44d3-8f01-0b1d9a47d1ff")
    108 IVssSoftwareSnapshotProvider : public IUnknown
    109 {
    110     virtual HRESULT STDMETHODCALLTYPE SetContext(
    111         LONG lContext) = 0;
    112 
    113     virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties(
    114         VSS_ID SnapshotId,
    115         VSS_SNAPSHOT_PROP *pProp) = 0;
    116 
    117     virtual HRESULT STDMETHODCALLTYPE Query(
    118         VSS_ID QueriedObjectId,
    119         VSS_OBJECT_TYPE eQueriedObjectType,
    120         VSS_OBJECT_TYPE eReturnedObjectsType,
    121         IVssEnumObject **ppEnum) = 0;
    122 
    123     virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots(
    124         VSS_ID SourceObjectId,
    125         VSS_OBJECT_TYPE eSourceObjectType,
    126         WINBOOL bForceDelete,
    127         LONG *plDeletedSnapshots,
    128         VSS_ID *pNondeletedSnapshotID) = 0;
    129 
    130     virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
    131         VSS_ID SnapshotSetId,
    132         VSS_ID SnapshotId,
    133         VSS_PWSZ pwszVolumeName,
    134         LONG lNewContext) = 0;
    135 
    136     virtual HRESULT STDMETHODCALLTYPE IsVolumeSupported(
    137         VSS_PWSZ pwszVolumeName,
    138         WINBOOL *pbSupportedByThisProvider) = 0;
    139 
    140     virtual HRESULT STDMETHODCALLTYPE IsVolumeSnapshotted(
    141         VSS_PWSZ pwszVolumeName,
    142         WINBOOL *pbSnapshotsPresent,
    143         LONG *plSnapshotCompatibility) = 0;
    144 
    145     virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty(
    146         VSS_ID SnapshotId,
    147         VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
    148         VARIANT vProperty) = 0;
    149 
    150     virtual HRESULT STDMETHODCALLTYPE RevertToSnapshot(
    151         VSS_ID SnapshotId) = 0;
    152 
    153     virtual HRESULT STDMETHODCALLTYPE QueryRevertStatus(
    154         VSS_PWSZ pwszVolume,
    155         IVssAsync **ppAsync) = 0;
    156 
    157 };
    158 #ifdef __CRT_UUID_DECL
    159 __CRT_UUID_DECL(IVssSoftwareSnapshotProvider, 0x609e123e, 0x2c5a, 0x44d3, 0x8f,0x01, 0x0b,0x1d,0x9a,0x47,0xd1,0xff)
    160 #endif
    161 #else
    162 typedef struct IVssSoftwareSnapshotProviderVtbl {
    163     BEGIN_INTERFACE
    164 
    165     /*** IUnknown methods ***/
    166     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    167         IVssSoftwareSnapshotProvider *This,
    168         REFIID riid,
    169         void **ppvObject);
    170 
    171     ULONG (STDMETHODCALLTYPE *AddRef)(
    172         IVssSoftwareSnapshotProvider *This);
    173 
    174     ULONG (STDMETHODCALLTYPE *Release)(
    175         IVssSoftwareSnapshotProvider *This);
    176 
    177     /*** IVssSoftwareSnapshotProvider methods ***/
    178     HRESULT (STDMETHODCALLTYPE *SetContext)(
    179         IVssSoftwareSnapshotProvider *This,
    180         LONG lContext);
    181 
    182     HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
    183         IVssSoftwareSnapshotProvider *This,
    184         VSS_ID SnapshotId,
    185         VSS_SNAPSHOT_PROP *pProp);
    186 
    187     HRESULT (STDMETHODCALLTYPE *Query)(
    188         IVssSoftwareSnapshotProvider *This,
    189         VSS_ID QueriedObjectId,
    190         VSS_OBJECT_TYPE eQueriedObjectType,
    191         VSS_OBJECT_TYPE eReturnedObjectsType,
    192         IVssEnumObject **ppEnum);
    193 
    194     HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
    195         IVssSoftwareSnapshotProvider *This,
    196         VSS_ID SourceObjectId,
    197         VSS_OBJECT_TYPE eSourceObjectType,
    198         WINBOOL bForceDelete,
    199         LONG *plDeletedSnapshots,
    200         VSS_ID *pNondeletedSnapshotID);
    201 
    202     HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
    203         IVssSoftwareSnapshotProvider *This,
    204         VSS_ID SnapshotSetId,
    205         VSS_ID SnapshotId,
    206         VSS_PWSZ pwszVolumeName,
    207         LONG lNewContext);
    208 
    209     HRESULT (STDMETHODCALLTYPE *IsVolumeSupported)(
    210         IVssSoftwareSnapshotProvider *This,
    211         VSS_PWSZ pwszVolumeName,
    212         WINBOOL *pbSupportedByThisProvider);
    213 
    214     HRESULT (STDMETHODCALLTYPE *IsVolumeSnapshotted)(
    215         IVssSoftwareSnapshotProvider *This,
    216         VSS_PWSZ pwszVolumeName,
    217         WINBOOL *pbSnapshotsPresent,
    218         LONG *plSnapshotCompatibility);
    219 
    220     HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)(
    221         IVssSoftwareSnapshotProvider *This,
    222         VSS_ID SnapshotId,
    223         VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
    224         VARIANT vProperty);
    225 
    226     HRESULT (STDMETHODCALLTYPE *RevertToSnapshot)(
    227         IVssSoftwareSnapshotProvider *This,
    228         VSS_ID SnapshotId);
    229 
    230     HRESULT (STDMETHODCALLTYPE *QueryRevertStatus)(
    231         IVssSoftwareSnapshotProvider *This,
    232         VSS_PWSZ pwszVolume,
    233         IVssAsync **ppAsync);
    234 
    235     END_INTERFACE
    236 } IVssSoftwareSnapshotProviderVtbl;
    237 
    238 interface IVssSoftwareSnapshotProvider {
    239     CONST_VTBL IVssSoftwareSnapshotProviderVtbl* lpVtbl;
    240 };
    241 
    242 #ifdef COBJMACROS
    243 #ifndef WIDL_C_INLINE_WRAPPERS
    244 /*** IUnknown methods ***/
    245 #define IVssSoftwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    246 #define IVssSoftwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
    247 #define IVssSoftwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
    248 /*** IVssSoftwareSnapshotProvider methods ***/
    249 #define IVssSoftwareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
    250 #define IVssSoftwareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
    251 #define IVssSoftwareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
    252 #define IVssSoftwareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
    253 #define IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext)
    254 #define IVssSoftwareSnapshotProvider_IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider) (This)->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider)
    255 #define IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility)
    256 #define IVssSoftwareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
    257 #define IVssSoftwareSnapshotProvider_RevertToSnapshot(This,SnapshotId) (This)->lpVtbl->RevertToSnapshot(This,SnapshotId)
    258 #define IVssSoftwareSnapshotProvider_QueryRevertStatus(This,pwszVolume,ppAsync) (This)->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync)
    259 #else
    260 /*** IUnknown methods ***/
    261 static inline HRESULT IVssSoftwareSnapshotProvider_QueryInterface(IVssSoftwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
    262     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    263 }
    264 static inline ULONG IVssSoftwareSnapshotProvider_AddRef(IVssSoftwareSnapshotProvider* This) {
    265     return This->lpVtbl->AddRef(This);
    266 }
    267 static inline ULONG IVssSoftwareSnapshotProvider_Release(IVssSoftwareSnapshotProvider* This) {
    268     return This->lpVtbl->Release(This);
    269 }
    270 /*** IVssSoftwareSnapshotProvider methods ***/
    271 static inline HRESULT IVssSoftwareSnapshotProvider_SetContext(IVssSoftwareSnapshotProvider* This,LONG lContext) {
    272     return This->lpVtbl->SetContext(This,lContext);
    273 }
    274 static inline HRESULT IVssSoftwareSnapshotProvider_GetSnapshotProperties(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
    275     return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
    276 }
    277 static inline HRESULT IVssSoftwareSnapshotProvider_Query(IVssSoftwareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
    278     return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
    279 }
    280 static inline HRESULT IVssSoftwareSnapshotProvider_DeleteSnapshots(IVssSoftwareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
    281     return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
    282 }
    283 static inline HRESULT IVssSoftwareSnapshotProvider_BeginPrepareSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszVolumeName,LONG lNewContext) {
    284     return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszVolumeName,lNewContext);
    285 }
    286 static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSupported(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSupportedByThisProvider) {
    287     return This->lpVtbl->IsVolumeSupported(This,pwszVolumeName,pbSupportedByThisProvider);
    288 }
    289 static inline HRESULT IVssSoftwareSnapshotProvider_IsVolumeSnapshotted(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolumeName,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
    290     return This->lpVtbl->IsVolumeSnapshotted(This,pwszVolumeName,pbSnapshotsPresent,plSnapshotCompatibility);
    291 }
    292 static inline HRESULT IVssSoftwareSnapshotProvider_SetSnapshotProperty(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) {
    293     return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty);
    294 }
    295 static inline HRESULT IVssSoftwareSnapshotProvider_RevertToSnapshot(IVssSoftwareSnapshotProvider* This,VSS_ID SnapshotId) {
    296     return This->lpVtbl->RevertToSnapshot(This,SnapshotId);
    297 }
    298 static inline HRESULT IVssSoftwareSnapshotProvider_QueryRevertStatus(IVssSoftwareSnapshotProvider* This,VSS_PWSZ pwszVolume,IVssAsync **ppAsync) {
    299     return This->lpVtbl->QueryRevertStatus(This,pwszVolume,ppAsync);
    300 }
    301 #endif
    302 #endif
    303 
    304 #endif
    305 
    306 
    307 #endif  /* __IVssSoftwareSnapshotProvider_INTERFACE_DEFINED__ */
    308 
    309 /*****************************************************************************
    310  * IVssProviderCreateSnapshotSet interface
    311  */
    312 #ifndef __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__
    313 #define __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__
    314 
    315 DEFINE_GUID(IID_IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c);
    316 #if defined(__cplusplus) && !defined(CINTERFACE)
    317 MIDL_INTERFACE("5f894e5b-1e39-4778-8e23-9abad9f0e08c")
    318 IVssProviderCreateSnapshotSet : public IUnknown
    319 {
    320     virtual HRESULT STDMETHODCALLTYPE EndPrepareSnapshots(
    321         VSS_ID SnapshotSetId) = 0;
    322 
    323     virtual HRESULT STDMETHODCALLTYPE PreCommitSnapshots(
    324         VSS_ID SnapshotSetId) = 0;
    325 
    326     virtual HRESULT STDMETHODCALLTYPE CommitSnapshots(
    327         VSS_ID SnapshotSetId) = 0;
    328 
    329     virtual HRESULT STDMETHODCALLTYPE PostCommitSnapshots(
    330         VSS_ID SnapshotSetId,
    331         LONG lSnapshotsCount) = 0;
    332 
    333     virtual HRESULT STDMETHODCALLTYPE PreFinalCommitSnapshots(
    334         VSS_ID SnapshotSetId) = 0;
    335 
    336     virtual HRESULT STDMETHODCALLTYPE PostFinalCommitSnapshots(
    337         VSS_ID SnapshotSetId) = 0;
    338 
    339     virtual HRESULT STDMETHODCALLTYPE AbortSnapshots(
    340         VSS_ID SnapshotSetId) = 0;
    341 
    342 };
    343 #ifdef __CRT_UUID_DECL
    344 __CRT_UUID_DECL(IVssProviderCreateSnapshotSet, 0x5f894e5b, 0x1e39, 0x4778, 0x8e,0x23, 0x9a,0xba,0xd9,0xf0,0xe0,0x8c)
    345 #endif
    346 #else
    347 typedef struct IVssProviderCreateSnapshotSetVtbl {
    348     BEGIN_INTERFACE
    349 
    350     /*** IUnknown methods ***/
    351     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    352         IVssProviderCreateSnapshotSet *This,
    353         REFIID riid,
    354         void **ppvObject);
    355 
    356     ULONG (STDMETHODCALLTYPE *AddRef)(
    357         IVssProviderCreateSnapshotSet *This);
    358 
    359     ULONG (STDMETHODCALLTYPE *Release)(
    360         IVssProviderCreateSnapshotSet *This);
    361 
    362     /*** IVssProviderCreateSnapshotSet methods ***/
    363     HRESULT (STDMETHODCALLTYPE *EndPrepareSnapshots)(
    364         IVssProviderCreateSnapshotSet *This,
    365         VSS_ID SnapshotSetId);
    366 
    367     HRESULT (STDMETHODCALLTYPE *PreCommitSnapshots)(
    368         IVssProviderCreateSnapshotSet *This,
    369         VSS_ID SnapshotSetId);
    370 
    371     HRESULT (STDMETHODCALLTYPE *CommitSnapshots)(
    372         IVssProviderCreateSnapshotSet *This,
    373         VSS_ID SnapshotSetId);
    374 
    375     HRESULT (STDMETHODCALLTYPE *PostCommitSnapshots)(
    376         IVssProviderCreateSnapshotSet *This,
    377         VSS_ID SnapshotSetId,
    378         LONG lSnapshotsCount);
    379 
    380     HRESULT (STDMETHODCALLTYPE *PreFinalCommitSnapshots)(
    381         IVssProviderCreateSnapshotSet *This,
    382         VSS_ID SnapshotSetId);
    383 
    384     HRESULT (STDMETHODCALLTYPE *PostFinalCommitSnapshots)(
    385         IVssProviderCreateSnapshotSet *This,
    386         VSS_ID SnapshotSetId);
    387 
    388     HRESULT (STDMETHODCALLTYPE *AbortSnapshots)(
    389         IVssProviderCreateSnapshotSet *This,
    390         VSS_ID SnapshotSetId);
    391 
    392     END_INTERFACE
    393 } IVssProviderCreateSnapshotSetVtbl;
    394 
    395 interface IVssProviderCreateSnapshotSet {
    396     CONST_VTBL IVssProviderCreateSnapshotSetVtbl* lpVtbl;
    397 };
    398 
    399 #ifdef COBJMACROS
    400 #ifndef WIDL_C_INLINE_WRAPPERS
    401 /*** IUnknown methods ***/
    402 #define IVssProviderCreateSnapshotSet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    403 #define IVssProviderCreateSnapshotSet_AddRef(This) (This)->lpVtbl->AddRef(This)
    404 #define IVssProviderCreateSnapshotSet_Release(This) (This)->lpVtbl->Release(This)
    405 /*** IVssProviderCreateSnapshotSet methods ***/
    406 #define IVssProviderCreateSnapshotSet_EndPrepareSnapshots(This,SnapshotSetId) (This)->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId)
    407 #define IVssProviderCreateSnapshotSet_PreCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreCommitSnapshots(This,SnapshotSetId)
    408 #define IVssProviderCreateSnapshotSet_CommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->CommitSnapshots(This,SnapshotSetId)
    409 #define IVssProviderCreateSnapshotSet_PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount) (This)->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount)
    410 #define IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId)
    411 #define IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(This,SnapshotSetId) (This)->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId)
    412 #define IVssProviderCreateSnapshotSet_AbortSnapshots(This,SnapshotSetId) (This)->lpVtbl->AbortSnapshots(This,SnapshotSetId)
    413 #else
    414 /*** IUnknown methods ***/
    415 static inline HRESULT IVssProviderCreateSnapshotSet_QueryInterface(IVssProviderCreateSnapshotSet* This,REFIID riid,void **ppvObject) {
    416     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    417 }
    418 static inline ULONG IVssProviderCreateSnapshotSet_AddRef(IVssProviderCreateSnapshotSet* This) {
    419     return This->lpVtbl->AddRef(This);
    420 }
    421 static inline ULONG IVssProviderCreateSnapshotSet_Release(IVssProviderCreateSnapshotSet* This) {
    422     return This->lpVtbl->Release(This);
    423 }
    424 /*** IVssProviderCreateSnapshotSet methods ***/
    425 static inline HRESULT IVssProviderCreateSnapshotSet_EndPrepareSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    426     return This->lpVtbl->EndPrepareSnapshots(This,SnapshotSetId);
    427 }
    428 static inline HRESULT IVssProviderCreateSnapshotSet_PreCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    429     return This->lpVtbl->PreCommitSnapshots(This,SnapshotSetId);
    430 }
    431 static inline HRESULT IVssProviderCreateSnapshotSet_CommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    432     return This->lpVtbl->CommitSnapshots(This,SnapshotSetId);
    433 }
    434 static inline HRESULT IVssProviderCreateSnapshotSet_PostCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId,LONG lSnapshotsCount) {
    435     return This->lpVtbl->PostCommitSnapshots(This,SnapshotSetId,lSnapshotsCount);
    436 }
    437 static inline HRESULT IVssProviderCreateSnapshotSet_PreFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    438     return This->lpVtbl->PreFinalCommitSnapshots(This,SnapshotSetId);
    439 }
    440 static inline HRESULT IVssProviderCreateSnapshotSet_PostFinalCommitSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    441     return This->lpVtbl->PostFinalCommitSnapshots(This,SnapshotSetId);
    442 }
    443 static inline HRESULT IVssProviderCreateSnapshotSet_AbortSnapshots(IVssProviderCreateSnapshotSet* This,VSS_ID SnapshotSetId) {
    444     return This->lpVtbl->AbortSnapshots(This,SnapshotSetId);
    445 }
    446 #endif
    447 #endif
    448 
    449 #endif
    450 
    451 
    452 #endif  /* __IVssProviderCreateSnapshotSet_INTERFACE_DEFINED__ */
    453 
    454 /*****************************************************************************
    455  * IVssProviderNotifications interface
    456  */
    457 #ifndef __IVssProviderNotifications_INTERFACE_DEFINED__
    458 #define __IVssProviderNotifications_INTERFACE_DEFINED__
    459 
    460 DEFINE_GUID(IID_IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04);
    461 #if defined(__cplusplus) && !defined(CINTERFACE)
    462 MIDL_INTERFACE("e561901f-03a5-4afe-86d0-72baeece7004")
    463 IVssProviderNotifications : public IUnknown
    464 {
    465     virtual HRESULT STDMETHODCALLTYPE OnLoad(
    466         IUnknown *pCallback) = 0;
    467 
    468     virtual HRESULT STDMETHODCALLTYPE OnUnload(
    469         WINBOOL bForceUnload) = 0;
    470 
    471 };
    472 #ifdef __CRT_UUID_DECL
    473 __CRT_UUID_DECL(IVssProviderNotifications, 0xe561901f, 0x03a5, 0x4afe, 0x86,0xd0, 0x72,0xba,0xee,0xce,0x70,0x04)
    474 #endif
    475 #else
    476 typedef struct IVssProviderNotificationsVtbl {
    477     BEGIN_INTERFACE
    478 
    479     /*** IUnknown methods ***/
    480     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    481         IVssProviderNotifications *This,
    482         REFIID riid,
    483         void **ppvObject);
    484 
    485     ULONG (STDMETHODCALLTYPE *AddRef)(
    486         IVssProviderNotifications *This);
    487 
    488     ULONG (STDMETHODCALLTYPE *Release)(
    489         IVssProviderNotifications *This);
    490 
    491     /*** IVssProviderNotifications methods ***/
    492     HRESULT (STDMETHODCALLTYPE *OnLoad)(
    493         IVssProviderNotifications *This,
    494         IUnknown *pCallback);
    495 
    496     HRESULT (STDMETHODCALLTYPE *OnUnload)(
    497         IVssProviderNotifications *This,
    498         WINBOOL bForceUnload);
    499 
    500     END_INTERFACE
    501 } IVssProviderNotificationsVtbl;
    502 
    503 interface IVssProviderNotifications {
    504     CONST_VTBL IVssProviderNotificationsVtbl* lpVtbl;
    505 };
    506 
    507 #ifdef COBJMACROS
    508 #ifndef WIDL_C_INLINE_WRAPPERS
    509 /*** IUnknown methods ***/
    510 #define IVssProviderNotifications_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    511 #define IVssProviderNotifications_AddRef(This) (This)->lpVtbl->AddRef(This)
    512 #define IVssProviderNotifications_Release(This) (This)->lpVtbl->Release(This)
    513 /*** IVssProviderNotifications methods ***/
    514 #define IVssProviderNotifications_OnLoad(This,pCallback) (This)->lpVtbl->OnLoad(This,pCallback)
    515 #define IVssProviderNotifications_OnUnload(This,bForceUnload) (This)->lpVtbl->OnUnload(This,bForceUnload)
    516 #else
    517 /*** IUnknown methods ***/
    518 static inline HRESULT IVssProviderNotifications_QueryInterface(IVssProviderNotifications* This,REFIID riid,void **ppvObject) {
    519     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    520 }
    521 static inline ULONG IVssProviderNotifications_AddRef(IVssProviderNotifications* This) {
    522     return This->lpVtbl->AddRef(This);
    523 }
    524 static inline ULONG IVssProviderNotifications_Release(IVssProviderNotifications* This) {
    525     return This->lpVtbl->Release(This);
    526 }
    527 /*** IVssProviderNotifications methods ***/
    528 static inline HRESULT IVssProviderNotifications_OnLoad(IVssProviderNotifications* This,IUnknown *pCallback) {
    529     return This->lpVtbl->OnLoad(This,pCallback);
    530 }
    531 static inline HRESULT IVssProviderNotifications_OnUnload(IVssProviderNotifications* This,WINBOOL bForceUnload) {
    532     return This->lpVtbl->OnUnload(This,bForceUnload);
    533 }
    534 #endif
    535 #endif
    536 
    537 #endif
    538 
    539 
    540 #endif  /* __IVssProviderNotifications_INTERFACE_DEFINED__ */
    541 
    542 /*****************************************************************************
    543  * IVssHardwareSnapshotProvider interface
    544  */
    545 #ifndef __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__
    546 #define __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__
    547 
    548 DEFINE_GUID(IID_IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10);
    549 #if defined(__cplusplus) && !defined(CINTERFACE)
    550 MIDL_INTERFACE("9593a157-44e9-4344-bbeb-44fbf9b06b10")
    551 IVssHardwareSnapshotProvider : public IUnknown
    552 {
    553     virtual HRESULT STDMETHODCALLTYPE AreLunsSupported(
    554         LONG lLunCount,
    555         LONG lContext,
    556         VSS_PWSZ *rgwszDevices,
    557         VDS_LUN_INFORMATION *pLunInformation,
    558         WINBOOL *pbIsSupported) = 0;
    559 
    560     virtual HRESULT STDMETHODCALLTYPE FillInLunInfo(
    561         VSS_PWSZ wszDeviceName,
    562         VDS_LUN_INFORMATION *pLunInfo,
    563         WINBOOL *pbIsSupported) = 0;
    564 
    565     virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
    566         VSS_ID SnapshotSetId,
    567         VSS_ID SnapshotId,
    568         LONG lContext,
    569         LONG lLunCount,
    570         VSS_PWSZ *rgDeviceNames,
    571         VDS_LUN_INFORMATION *rgLunInformation) = 0;
    572 
    573     virtual HRESULT STDMETHODCALLTYPE GetTargetLuns(
    574         LONG lLunCount,
    575         VSS_PWSZ *rgDeviceNames,
    576         VDS_LUN_INFORMATION *rgSourceLuns,
    577         VDS_LUN_INFORMATION *rgDestinationLuns) = 0;
    578 
    579     virtual HRESULT STDMETHODCALLTYPE LocateLuns(
    580         LONG lLunCount,
    581         VDS_LUN_INFORMATION *rgSourceLuns) = 0;
    582 
    583     virtual HRESULT STDMETHODCALLTYPE OnLunEmpty(
    584         VSS_PWSZ wszDeviceName,
    585         VDS_LUN_INFORMATION *pInformation) = 0;
    586 
    587 };
    588 #ifdef __CRT_UUID_DECL
    589 __CRT_UUID_DECL(IVssHardwareSnapshotProvider, 0x9593a157, 0x44e9, 0x4344, 0xbb,0xeb, 0x44,0xfb,0xf9,0xb0,0x6b,0x10)
    590 #endif
    591 #else
    592 typedef struct IVssHardwareSnapshotProviderVtbl {
    593     BEGIN_INTERFACE
    594 
    595     /*** IUnknown methods ***/
    596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    597         IVssHardwareSnapshotProvider *This,
    598         REFIID riid,
    599         void **ppvObject);
    600 
    601     ULONG (STDMETHODCALLTYPE *AddRef)(
    602         IVssHardwareSnapshotProvider *This);
    603 
    604     ULONG (STDMETHODCALLTYPE *Release)(
    605         IVssHardwareSnapshotProvider *This);
    606 
    607     /*** IVssHardwareSnapshotProvider methods ***/
    608     HRESULT (STDMETHODCALLTYPE *AreLunsSupported)(
    609         IVssHardwareSnapshotProvider *This,
    610         LONG lLunCount,
    611         LONG lContext,
    612         VSS_PWSZ *rgwszDevices,
    613         VDS_LUN_INFORMATION *pLunInformation,
    614         WINBOOL *pbIsSupported);
    615 
    616     HRESULT (STDMETHODCALLTYPE *FillInLunInfo)(
    617         IVssHardwareSnapshotProvider *This,
    618         VSS_PWSZ wszDeviceName,
    619         VDS_LUN_INFORMATION *pLunInfo,
    620         WINBOOL *pbIsSupported);
    621 
    622     HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
    623         IVssHardwareSnapshotProvider *This,
    624         VSS_ID SnapshotSetId,
    625         VSS_ID SnapshotId,
    626         LONG lContext,
    627         LONG lLunCount,
    628         VSS_PWSZ *rgDeviceNames,
    629         VDS_LUN_INFORMATION *rgLunInformation);
    630 
    631     HRESULT (STDMETHODCALLTYPE *GetTargetLuns)(
    632         IVssHardwareSnapshotProvider *This,
    633         LONG lLunCount,
    634         VSS_PWSZ *rgDeviceNames,
    635         VDS_LUN_INFORMATION *rgSourceLuns,
    636         VDS_LUN_INFORMATION *rgDestinationLuns);
    637 
    638     HRESULT (STDMETHODCALLTYPE *LocateLuns)(
    639         IVssHardwareSnapshotProvider *This,
    640         LONG lLunCount,
    641         VDS_LUN_INFORMATION *rgSourceLuns);
    642 
    643     HRESULT (STDMETHODCALLTYPE *OnLunEmpty)(
    644         IVssHardwareSnapshotProvider *This,
    645         VSS_PWSZ wszDeviceName,
    646         VDS_LUN_INFORMATION *pInformation);
    647 
    648     END_INTERFACE
    649 } IVssHardwareSnapshotProviderVtbl;
    650 
    651 interface IVssHardwareSnapshotProvider {
    652     CONST_VTBL IVssHardwareSnapshotProviderVtbl* lpVtbl;
    653 };
    654 
    655 #ifdef COBJMACROS
    656 #ifndef WIDL_C_INLINE_WRAPPERS
    657 /*** IUnknown methods ***/
    658 #define IVssHardwareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    659 #define IVssHardwareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
    660 #define IVssHardwareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
    661 /*** IVssHardwareSnapshotProvider methods ***/
    662 #define IVssHardwareSnapshotProvider_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
    663 #define IVssHardwareSnapshotProvider_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
    664 #define IVssHardwareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
    665 #define IVssHardwareSnapshotProvider_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
    666 #define IVssHardwareSnapshotProvider_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
    667 #define IVssHardwareSnapshotProvider_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
    668 #else
    669 /*** IUnknown methods ***/
    670 static inline HRESULT IVssHardwareSnapshotProvider_QueryInterface(IVssHardwareSnapshotProvider* This,REFIID riid,void **ppvObject) {
    671     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    672 }
    673 static inline ULONG IVssHardwareSnapshotProvider_AddRef(IVssHardwareSnapshotProvider* This) {
    674     return This->lpVtbl->AddRef(This);
    675 }
    676 static inline ULONG IVssHardwareSnapshotProvider_Release(IVssHardwareSnapshotProvider* This) {
    677     return This->lpVtbl->Release(This);
    678 }
    679 /*** IVssHardwareSnapshotProvider methods ***/
    680 static inline HRESULT IVssHardwareSnapshotProvider_AreLunsSupported(IVssHardwareSnapshotProvider* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) {
    681     return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported);
    682 }
    683 static inline HRESULT IVssHardwareSnapshotProvider_FillInLunInfo(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) {
    684     return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported);
    685 }
    686 static inline HRESULT IVssHardwareSnapshotProvider_BeginPrepareSnapshot(IVssHardwareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) {
    687     return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation);
    688 }
    689 static inline HRESULT IVssHardwareSnapshotProvider_GetTargetLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) {
    690     return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns);
    691 }
    692 static inline HRESULT IVssHardwareSnapshotProvider_LocateLuns(IVssHardwareSnapshotProvider* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
    693     return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
    694 }
    695 static inline HRESULT IVssHardwareSnapshotProvider_OnLunEmpty(IVssHardwareSnapshotProvider* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) {
    696     return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation);
    697 }
    698 #endif
    699 #endif
    700 
    701 #endif
    702 
    703 
    704 #endif  /* __IVssHardwareSnapshotProvider_INTERFACE_DEFINED__ */
    705 
    706 /*****************************************************************************
    707  * IVssHardwareSnapshotProviderEx interface
    708  */
    709 #ifndef __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__
    710 #define __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__
    711 
    712 DEFINE_GUID(IID_IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd);
    713 #if defined(__cplusplus) && !defined(CINTERFACE)
    714 MIDL_INTERFACE("7f5ba925-cdb1-4d11-a71f-339eb7e709fd")
    715 IVssHardwareSnapshotProviderEx : public IVssHardwareSnapshotProvider
    716 {
    717     virtual HRESULT STDMETHODCALLTYPE GetProviderCapabilities(
    718         ULONGLONG *pllOriginalCapabilityMask) = 0;
    719 
    720     virtual HRESULT STDMETHODCALLTYPE OnLunStateChange(
    721         VDS_LUN_INFORMATION *pSnapshotLuns,
    722         VDS_LUN_INFORMATION *pOriginalLuns,
    723         DWORD dwCount,
    724         DWORD dwFlags) = 0;
    725 
    726     virtual HRESULT STDMETHODCALLTYPE ResyncLuns(
    727         VDS_LUN_INFORMATION *pSourceLuns,
    728         VDS_LUN_INFORMATION *pTargetLuns,
    729         DWORD dwCount,
    730         IVssAsync **ppAsync) = 0;
    731 
    732     virtual HRESULT STDMETHODCALLTYPE OnReuseLuns(
    733         VDS_LUN_INFORMATION *pSnapshotLuns,
    734         VDS_LUN_INFORMATION *pOriginalLuns,
    735         DWORD dwCount) = 0;
    736 
    737 };
    738 #ifdef __CRT_UUID_DECL
    739 __CRT_UUID_DECL(IVssHardwareSnapshotProviderEx, 0x7f5ba925, 0xcdb1, 0x4d11, 0xa7,0x1f, 0x33,0x9e,0xb7,0xe7,0x09,0xfd)
    740 #endif
    741 #else
    742 typedef struct IVssHardwareSnapshotProviderExVtbl {
    743     BEGIN_INTERFACE
    744 
    745     /*** IUnknown methods ***/
    746     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    747         IVssHardwareSnapshotProviderEx *This,
    748         REFIID riid,
    749         void **ppvObject);
    750 
    751     ULONG (STDMETHODCALLTYPE *AddRef)(
    752         IVssHardwareSnapshotProviderEx *This);
    753 
    754     ULONG (STDMETHODCALLTYPE *Release)(
    755         IVssHardwareSnapshotProviderEx *This);
    756 
    757     /*** IVssHardwareSnapshotProvider methods ***/
    758     HRESULT (STDMETHODCALLTYPE *AreLunsSupported)(
    759         IVssHardwareSnapshotProviderEx *This,
    760         LONG lLunCount,
    761         LONG lContext,
    762         VSS_PWSZ *rgwszDevices,
    763         VDS_LUN_INFORMATION *pLunInformation,
    764         WINBOOL *pbIsSupported);
    765 
    766     HRESULT (STDMETHODCALLTYPE *FillInLunInfo)(
    767         IVssHardwareSnapshotProviderEx *This,
    768         VSS_PWSZ wszDeviceName,
    769         VDS_LUN_INFORMATION *pLunInfo,
    770         WINBOOL *pbIsSupported);
    771 
    772     HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
    773         IVssHardwareSnapshotProviderEx *This,
    774         VSS_ID SnapshotSetId,
    775         VSS_ID SnapshotId,
    776         LONG lContext,
    777         LONG lLunCount,
    778         VSS_PWSZ *rgDeviceNames,
    779         VDS_LUN_INFORMATION *rgLunInformation);
    780 
    781     HRESULT (STDMETHODCALLTYPE *GetTargetLuns)(
    782         IVssHardwareSnapshotProviderEx *This,
    783         LONG lLunCount,
    784         VSS_PWSZ *rgDeviceNames,
    785         VDS_LUN_INFORMATION *rgSourceLuns,
    786         VDS_LUN_INFORMATION *rgDestinationLuns);
    787 
    788     HRESULT (STDMETHODCALLTYPE *LocateLuns)(
    789         IVssHardwareSnapshotProviderEx *This,
    790         LONG lLunCount,
    791         VDS_LUN_INFORMATION *rgSourceLuns);
    792 
    793     HRESULT (STDMETHODCALLTYPE *OnLunEmpty)(
    794         IVssHardwareSnapshotProviderEx *This,
    795         VSS_PWSZ wszDeviceName,
    796         VDS_LUN_INFORMATION *pInformation);
    797 
    798     /*** IVssHardwareSnapshotProviderEx methods ***/
    799     HRESULT (STDMETHODCALLTYPE *GetProviderCapabilities)(
    800         IVssHardwareSnapshotProviderEx *This,
    801         ULONGLONG *pllOriginalCapabilityMask);
    802 
    803     HRESULT (STDMETHODCALLTYPE *OnLunStateChange)(
    804         IVssHardwareSnapshotProviderEx *This,
    805         VDS_LUN_INFORMATION *pSnapshotLuns,
    806         VDS_LUN_INFORMATION *pOriginalLuns,
    807         DWORD dwCount,
    808         DWORD dwFlags);
    809 
    810     HRESULT (STDMETHODCALLTYPE *ResyncLuns)(
    811         IVssHardwareSnapshotProviderEx *This,
    812         VDS_LUN_INFORMATION *pSourceLuns,
    813         VDS_LUN_INFORMATION *pTargetLuns,
    814         DWORD dwCount,
    815         IVssAsync **ppAsync);
    816 
    817     HRESULT (STDMETHODCALLTYPE *OnReuseLuns)(
    818         IVssHardwareSnapshotProviderEx *This,
    819         VDS_LUN_INFORMATION *pSnapshotLuns,
    820         VDS_LUN_INFORMATION *pOriginalLuns,
    821         DWORD dwCount);
    822 
    823     END_INTERFACE
    824 } IVssHardwareSnapshotProviderExVtbl;
    825 
    826 interface IVssHardwareSnapshotProviderEx {
    827     CONST_VTBL IVssHardwareSnapshotProviderExVtbl* lpVtbl;
    828 };
    829 
    830 #ifdef COBJMACROS
    831 #ifndef WIDL_C_INLINE_WRAPPERS
    832 /*** IUnknown methods ***/
    833 #define IVssHardwareSnapshotProviderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    834 #define IVssHardwareSnapshotProviderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
    835 #define IVssHardwareSnapshotProviderEx_Release(This) (This)->lpVtbl->Release(This)
    836 /*** IVssHardwareSnapshotProvider methods ***/
    837 #define IVssHardwareSnapshotProviderEx_AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported) (This)->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported)
    838 #define IVssHardwareSnapshotProviderEx_FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported) (This)->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported)
    839 #define IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation)
    840 #define IVssHardwareSnapshotProviderEx_GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns) (This)->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns)
    841 #define IVssHardwareSnapshotProviderEx_LocateLuns(This,lLunCount,rgSourceLuns) (This)->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns)
    842 #define IVssHardwareSnapshotProviderEx_OnLunEmpty(This,wszDeviceName,pInformation) (This)->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation)
    843 /*** IVssHardwareSnapshotProviderEx methods ***/
    844 #define IVssHardwareSnapshotProviderEx_GetProviderCapabilities(This,pllOriginalCapabilityMask) (This)->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask)
    845 #define IVssHardwareSnapshotProviderEx_OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags) (This)->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags)
    846 #define IVssHardwareSnapshotProviderEx_ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync) (This)->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync)
    847 #define IVssHardwareSnapshotProviderEx_OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount) (This)->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount)
    848 #else
    849 /*** IUnknown methods ***/
    850 static inline HRESULT IVssHardwareSnapshotProviderEx_QueryInterface(IVssHardwareSnapshotProviderEx* This,REFIID riid,void **ppvObject) {
    851     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    852 }
    853 static inline ULONG IVssHardwareSnapshotProviderEx_AddRef(IVssHardwareSnapshotProviderEx* This) {
    854     return This->lpVtbl->AddRef(This);
    855 }
    856 static inline ULONG IVssHardwareSnapshotProviderEx_Release(IVssHardwareSnapshotProviderEx* This) {
    857     return This->lpVtbl->Release(This);
    858 }
    859 /*** IVssHardwareSnapshotProvider methods ***/
    860 static inline HRESULT IVssHardwareSnapshotProviderEx_AreLunsSupported(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,LONG lContext,VSS_PWSZ *rgwszDevices,VDS_LUN_INFORMATION *pLunInformation,WINBOOL *pbIsSupported) {
    861     return This->lpVtbl->AreLunsSupported(This,lLunCount,lContext,rgwszDevices,pLunInformation,pbIsSupported);
    862 }
    863 static inline HRESULT IVssHardwareSnapshotProviderEx_FillInLunInfo(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pLunInfo,WINBOOL *pbIsSupported) {
    864     return This->lpVtbl->FillInLunInfo(This,wszDeviceName,pLunInfo,pbIsSupported);
    865 }
    866 static inline HRESULT IVssHardwareSnapshotProviderEx_BeginPrepareSnapshot(IVssHardwareSnapshotProviderEx* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,LONG lContext,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgLunInformation) {
    867     return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,lContext,lLunCount,rgDeviceNames,rgLunInformation);
    868 }
    869 static inline HRESULT IVssHardwareSnapshotProviderEx_GetTargetLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VSS_PWSZ *rgDeviceNames,VDS_LUN_INFORMATION *rgSourceLuns,VDS_LUN_INFORMATION *rgDestinationLuns) {
    870     return This->lpVtbl->GetTargetLuns(This,lLunCount,rgDeviceNames,rgSourceLuns,rgDestinationLuns);
    871 }
    872 static inline HRESULT IVssHardwareSnapshotProviderEx_LocateLuns(IVssHardwareSnapshotProviderEx* This,LONG lLunCount,VDS_LUN_INFORMATION *rgSourceLuns) {
    873     return This->lpVtbl->LocateLuns(This,lLunCount,rgSourceLuns);
    874 }
    875 static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunEmpty(IVssHardwareSnapshotProviderEx* This,VSS_PWSZ wszDeviceName,VDS_LUN_INFORMATION *pInformation) {
    876     return This->lpVtbl->OnLunEmpty(This,wszDeviceName,pInformation);
    877 }
    878 /*** IVssHardwareSnapshotProviderEx methods ***/
    879 static inline HRESULT IVssHardwareSnapshotProviderEx_GetProviderCapabilities(IVssHardwareSnapshotProviderEx* This,ULONGLONG *pllOriginalCapabilityMask) {
    880     return This->lpVtbl->GetProviderCapabilities(This,pllOriginalCapabilityMask);
    881 }
    882 static inline HRESULT IVssHardwareSnapshotProviderEx_OnLunStateChange(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount,DWORD dwFlags) {
    883     return This->lpVtbl->OnLunStateChange(This,pSnapshotLuns,pOriginalLuns,dwCount,dwFlags);
    884 }
    885 static inline HRESULT IVssHardwareSnapshotProviderEx_ResyncLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSourceLuns,VDS_LUN_INFORMATION *pTargetLuns,DWORD dwCount,IVssAsync **ppAsync) {
    886     return This->lpVtbl->ResyncLuns(This,pSourceLuns,pTargetLuns,dwCount,ppAsync);
    887 }
    888 static inline HRESULT IVssHardwareSnapshotProviderEx_OnReuseLuns(IVssHardwareSnapshotProviderEx* This,VDS_LUN_INFORMATION *pSnapshotLuns,VDS_LUN_INFORMATION *pOriginalLuns,DWORD dwCount) {
    889     return This->lpVtbl->OnReuseLuns(This,pSnapshotLuns,pOriginalLuns,dwCount);
    890 }
    891 #endif
    892 #endif
    893 
    894 #endif
    895 
    896 
    897 #endif  /* __IVssHardwareSnapshotProviderEx_INTERFACE_DEFINED__ */
    898 
    899 /*****************************************************************************
    900  * IVssFileShareSnapshotProvider interface
    901  */
    902 #ifndef __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__
    903 #define __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__
    904 
    905 DEFINE_GUID(IID_IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66);
    906 #if defined(__cplusplus) && !defined(CINTERFACE)
    907 MIDL_INTERFACE("c8636060-7c2e-11df-8c4a-0800200c9a66")
    908 IVssFileShareSnapshotProvider : public IUnknown
    909 {
    910     virtual HRESULT STDMETHODCALLTYPE SetContext(
    911         LONG lContext) = 0;
    912 
    913     virtual HRESULT STDMETHODCALLTYPE GetSnapshotProperties(
    914         VSS_ID SnapshotId,
    915         VSS_SNAPSHOT_PROP *pProp) = 0;
    916 
    917     virtual HRESULT STDMETHODCALLTYPE Query(
    918         VSS_ID QueriedObjectId,
    919         VSS_OBJECT_TYPE eQueriedObjectType,
    920         VSS_OBJECT_TYPE eReturnedObjectsType,
    921         IVssEnumObject **ppEnum) = 0;
    922 
    923     virtual HRESULT STDMETHODCALLTYPE DeleteSnapshots(
    924         VSS_ID SourceObjectId,
    925         VSS_OBJECT_TYPE eSourceObjectType,
    926         WINBOOL bForceDelete,
    927         LONG *plDeletedSnapshots,
    928         VSS_ID *pNondeletedSnapshotID) = 0;
    929 
    930     virtual HRESULT STDMETHODCALLTYPE BeginPrepareSnapshot(
    931         VSS_ID SnapshotSetId,
    932         VSS_ID SnapshotId,
    933         VSS_PWSZ pwszSharePath,
    934         LONG lNewContext,
    935         VSS_ID ProviderId) = 0;
    936 
    937     virtual HRESULT STDMETHODCALLTYPE IsPathSupported(
    938         VSS_PWSZ pwszSharePath,
    939         WINBOOL *pbSupportedByThisProvider) = 0;
    940 
    941     virtual HRESULT STDMETHODCALLTYPE IsPathSnapshotted(
    942         VSS_PWSZ pwszSharePath,
    943         WINBOOL *pbSnapshotsPresent,
    944         LONG *plSnapshotCompatibility) = 0;
    945 
    946     virtual HRESULT STDMETHODCALLTYPE SetSnapshotProperty(
    947         VSS_ID SnapshotId,
    948         VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
    949         VARIANT vProperty) = 0;
    950 
    951 };
    952 #ifdef __CRT_UUID_DECL
    953 __CRT_UUID_DECL(IVssFileShareSnapshotProvider, 0xc8636060, 0x7c2e, 0x11df, 0x8c,0x4a, 0x08,0x00,0x20,0x0c,0x9a,0x66)
    954 #endif
    955 #else
    956 typedef struct IVssFileShareSnapshotProviderVtbl {
    957     BEGIN_INTERFACE
    958 
    959     /*** IUnknown methods ***/
    960     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    961         IVssFileShareSnapshotProvider *This,
    962         REFIID riid,
    963         void **ppvObject);
    964 
    965     ULONG (STDMETHODCALLTYPE *AddRef)(
    966         IVssFileShareSnapshotProvider *This);
    967 
    968     ULONG (STDMETHODCALLTYPE *Release)(
    969         IVssFileShareSnapshotProvider *This);
    970 
    971     /*** IVssFileShareSnapshotProvider methods ***/
    972     HRESULT (STDMETHODCALLTYPE *SetContext)(
    973         IVssFileShareSnapshotProvider *This,
    974         LONG lContext);
    975 
    976     HRESULT (STDMETHODCALLTYPE *GetSnapshotProperties)(
    977         IVssFileShareSnapshotProvider *This,
    978         VSS_ID SnapshotId,
    979         VSS_SNAPSHOT_PROP *pProp);
    980 
    981     HRESULT (STDMETHODCALLTYPE *Query)(
    982         IVssFileShareSnapshotProvider *This,
    983         VSS_ID QueriedObjectId,
    984         VSS_OBJECT_TYPE eQueriedObjectType,
    985         VSS_OBJECT_TYPE eReturnedObjectsType,
    986         IVssEnumObject **ppEnum);
    987 
    988     HRESULT (STDMETHODCALLTYPE *DeleteSnapshots)(
    989         IVssFileShareSnapshotProvider *This,
    990         VSS_ID SourceObjectId,
    991         VSS_OBJECT_TYPE eSourceObjectType,
    992         WINBOOL bForceDelete,
    993         LONG *plDeletedSnapshots,
    994         VSS_ID *pNondeletedSnapshotID);
    995 
    996     HRESULT (STDMETHODCALLTYPE *BeginPrepareSnapshot)(
    997         IVssFileShareSnapshotProvider *This,
    998         VSS_ID SnapshotSetId,
    999         VSS_ID SnapshotId,
   1000         VSS_PWSZ pwszSharePath,
   1001         LONG lNewContext,
   1002         VSS_ID ProviderId);
   1003 
   1004     HRESULT (STDMETHODCALLTYPE *IsPathSupported)(
   1005         IVssFileShareSnapshotProvider *This,
   1006         VSS_PWSZ pwszSharePath,
   1007         WINBOOL *pbSupportedByThisProvider);
   1008 
   1009     HRESULT (STDMETHODCALLTYPE *IsPathSnapshotted)(
   1010         IVssFileShareSnapshotProvider *This,
   1011         VSS_PWSZ pwszSharePath,
   1012         WINBOOL *pbSnapshotsPresent,
   1013         LONG *plSnapshotCompatibility);
   1014 
   1015     HRESULT (STDMETHODCALLTYPE *SetSnapshotProperty)(
   1016         IVssFileShareSnapshotProvider *This,
   1017         VSS_ID SnapshotId,
   1018         VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,
   1019         VARIANT vProperty);
   1020 
   1021     END_INTERFACE
   1022 } IVssFileShareSnapshotProviderVtbl;
   1023 
   1024 interface IVssFileShareSnapshotProvider {
   1025     CONST_VTBL IVssFileShareSnapshotProviderVtbl* lpVtbl;
   1026 };
   1027 
   1028 #ifdef COBJMACROS
   1029 #ifndef WIDL_C_INLINE_WRAPPERS
   1030 /*** IUnknown methods ***/
   1031 #define IVssFileShareSnapshotProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1032 #define IVssFileShareSnapshotProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   1033 #define IVssFileShareSnapshotProvider_Release(This) (This)->lpVtbl->Release(This)
   1034 /*** IVssFileShareSnapshotProvider methods ***/
   1035 #define IVssFileShareSnapshotProvider_SetContext(This,lContext) (This)->lpVtbl->SetContext(This,lContext)
   1036 #define IVssFileShareSnapshotProvider_GetSnapshotProperties(This,SnapshotId,pProp) (This)->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp)
   1037 #define IVssFileShareSnapshotProvider_Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum) (This)->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum)
   1038 #define IVssFileShareSnapshotProvider_DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID) (This)->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID)
   1039 #define IVssFileShareSnapshotProvider_BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId) (This)->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId)
   1040 #define IVssFileShareSnapshotProvider_IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider) (This)->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider)
   1041 #define IVssFileShareSnapshotProvider_IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility) (This)->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility)
   1042 #define IVssFileShareSnapshotProvider_SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty) (This)->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty)
   1043 #else
   1044 /*** IUnknown methods ***/
   1045 static inline HRESULT IVssFileShareSnapshotProvider_QueryInterface(IVssFileShareSnapshotProvider* This,REFIID riid,void **ppvObject) {
   1046     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1047 }
   1048 static inline ULONG IVssFileShareSnapshotProvider_AddRef(IVssFileShareSnapshotProvider* This) {
   1049     return This->lpVtbl->AddRef(This);
   1050 }
   1051 static inline ULONG IVssFileShareSnapshotProvider_Release(IVssFileShareSnapshotProvider* This) {
   1052     return This->lpVtbl->Release(This);
   1053 }
   1054 /*** IVssFileShareSnapshotProvider methods ***/
   1055 static inline HRESULT IVssFileShareSnapshotProvider_SetContext(IVssFileShareSnapshotProvider* This,LONG lContext) {
   1056     return This->lpVtbl->SetContext(This,lContext);
   1057 }
   1058 static inline HRESULT IVssFileShareSnapshotProvider_GetSnapshotProperties(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROP *pProp) {
   1059     return This->lpVtbl->GetSnapshotProperties(This,SnapshotId,pProp);
   1060 }
   1061 static inline HRESULT IVssFileShareSnapshotProvider_Query(IVssFileShareSnapshotProvider* This,VSS_ID QueriedObjectId,VSS_OBJECT_TYPE eQueriedObjectType,VSS_OBJECT_TYPE eReturnedObjectsType,IVssEnumObject **ppEnum) {
   1062     return This->lpVtbl->Query(This,QueriedObjectId,eQueriedObjectType,eReturnedObjectsType,ppEnum);
   1063 }
   1064 static inline HRESULT IVssFileShareSnapshotProvider_DeleteSnapshots(IVssFileShareSnapshotProvider* This,VSS_ID SourceObjectId,VSS_OBJECT_TYPE eSourceObjectType,WINBOOL bForceDelete,LONG *plDeletedSnapshots,VSS_ID *pNondeletedSnapshotID) {
   1065     return This->lpVtbl->DeleteSnapshots(This,SourceObjectId,eSourceObjectType,bForceDelete,plDeletedSnapshots,pNondeletedSnapshotID);
   1066 }
   1067 static inline HRESULT IVssFileShareSnapshotProvider_BeginPrepareSnapshot(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotSetId,VSS_ID SnapshotId,VSS_PWSZ pwszSharePath,LONG lNewContext,VSS_ID ProviderId) {
   1068     return This->lpVtbl->BeginPrepareSnapshot(This,SnapshotSetId,SnapshotId,pwszSharePath,lNewContext,ProviderId);
   1069 }
   1070 static inline HRESULT IVssFileShareSnapshotProvider_IsPathSupported(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSupportedByThisProvider) {
   1071     return This->lpVtbl->IsPathSupported(This,pwszSharePath,pbSupportedByThisProvider);
   1072 }
   1073 static inline HRESULT IVssFileShareSnapshotProvider_IsPathSnapshotted(IVssFileShareSnapshotProvider* This,VSS_PWSZ pwszSharePath,WINBOOL *pbSnapshotsPresent,LONG *plSnapshotCompatibility) {
   1074     return This->lpVtbl->IsPathSnapshotted(This,pwszSharePath,pbSnapshotsPresent,plSnapshotCompatibility);
   1075 }
   1076 static inline HRESULT IVssFileShareSnapshotProvider_SetSnapshotProperty(IVssFileShareSnapshotProvider* This,VSS_ID SnapshotId,VSS_SNAPSHOT_PROPERTY_ID eSnapshotPropertyId,VARIANT vProperty) {
   1077     return This->lpVtbl->SetSnapshotProperty(This,SnapshotId,eSnapshotPropertyId,vProperty);
   1078 }
   1079 #endif
   1080 #endif
   1081 
   1082 #endif
   1083 
   1084 
   1085 #endif  /* __IVssFileShareSnapshotProvider_INTERFACE_DEFINED__ */
   1086 
   1087 #ifndef __VSSProvider_LIBRARY_DEFINED__
   1088 #define __VSSProvider_LIBRARY_DEFINED__
   1089 
   1090 DEFINE_GUID(LIBID_VSSProvider, 0x73c8b4c1, 0x6e9d, 0x4fc2, 0xb3,0x04, 0x03,0x0e,0xc7,0x63,0xfe,0x81);
   1091 
   1092 #endif /* __VSSProvider_LIBRARY_DEFINED__ */
   1093 #endif /* WINAPI_PARTITION_DESKTOP */
   1094 /* Begin additional prototypes for all interfaces */
   1095 
   1096 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
   1097 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
   1098 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
   1099 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
   1100 
   1101 /* End additional prototypes */
   1102 
   1103 #ifdef __cplusplus
   1104 }
   1105 #endif
   1106 
   1107 #endif /* __vsprov_h__ */