1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[inline]
CreateVssExpressWriterInternal() -> ::windows::runtime::Result<IVssExpressWriter>3 pub unsafe fn CreateVssExpressWriterInternal() -> ::windows::runtime::Result<IVssExpressWriter> {
4     #[cfg(windows)]
5     {
6         #[link(name = "windows")]
7         extern "system" {
8             fn CreateVssExpressWriterInternal(ppwriter: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT;
9         }
10         let mut result__: <IVssExpressWriter as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
11         CreateVssExpressWriterInternal(&mut result__).from_abi::<IVssExpressWriter>(result__)
12     }
13     #[cfg(not(windows))]
14     unimplemented!("Unsupported target OS");
15 }
16 #[repr(transparent)]
17 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
18 pub struct IVssAdmin(::windows::runtime::IUnknown);
19 impl IVssAdmin {
RegisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0, classid: Param1, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: Param5) -> ::windows::runtime::Result<()>20     pub unsafe fn RegisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0, classid: Param1, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: Param5) -> ::windows::runtime::Result<()> {
21         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pproviderid.into_param().abi(), classid.into_param().abi(), ::std::mem::transmute(pwszprovidername), ::std::mem::transmute(eprovidertype), ::std::mem::transmute(pwszproviderversion), providerversionid.into_param().abi()).ok()
22     }
UnregisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<()>23     pub unsafe fn UnregisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<()> {
24         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), providerid.into_param().abi()).ok()
25     }
QueryProviders(&self) -> ::windows::runtime::Result<IVssEnumObject>26     pub unsafe fn QueryProviders(&self) -> ::windows::runtime::Result<IVssEnumObject> {
27         let mut result__: <IVssEnumObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
28         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IVssEnumObject>(result__)
29     }
AbortAllSnapshotsInProgress(&self) -> ::windows::runtime::Result<()>30     pub unsafe fn AbortAllSnapshotsInProgress(&self) -> ::windows::runtime::Result<()> {
31         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)).ok()
32     }
33 }
34 unsafe impl ::windows::runtime::Interface for IVssAdmin {
35     type Vtable = IVssAdmin_abi;
36     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2012043670, 12131, 4563, [138, 57, 0, 192, 79, 114, 216, 227]);
37 }
38 impl ::std::convert::From<IVssAdmin> for ::windows::runtime::IUnknown {
from(value: IVssAdmin) -> Self39     fn from(value: IVssAdmin) -> Self {
40         unsafe { ::std::mem::transmute(value) }
41     }
42 }
43 impl ::std::convert::From<&IVssAdmin> for ::windows::runtime::IUnknown {
from(value: &IVssAdmin) -> Self44     fn from(value: &IVssAdmin) -> Self {
45         ::std::convert::From::from(::std::clone::Clone::clone(value))
46     }
47 }
48 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssAdmin {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>49     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
50         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
51     }
52 }
53 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssAdmin {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>54     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
55         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
56     }
57 }
58 #[repr(C)]
59 #[doc(hidden)]
60 pub struct IVssAdmin_abi(
61     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
62     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
63     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
64     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pproviderid: ::windows::runtime::GUID, classid: ::windows::runtime::GUID, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
65     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
66     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
67     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
68 );
69 #[repr(transparent)]
70 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
71 pub struct IVssAdminEx(::windows::runtime::IUnknown);
72 impl IVssAdminEx {
RegisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0, classid: Param1, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: Param5) -> ::windows::runtime::Result<()>73     pub unsafe fn RegisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0, classid: Param1, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: Param5) -> ::windows::runtime::Result<()> {
74         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pproviderid.into_param().abi(), classid.into_param().abi(), ::std::mem::transmute(pwszprovidername), ::std::mem::transmute(eprovidertype), ::std::mem::transmute(pwszproviderversion), providerversionid.into_param().abi()).ok()
75     }
UnregisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<()>76     pub unsafe fn UnregisterProvider<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<()> {
77         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), providerid.into_param().abi()).ok()
78     }
QueryProviders(&self) -> ::windows::runtime::Result<IVssEnumObject>79     pub unsafe fn QueryProviders(&self) -> ::windows::runtime::Result<IVssEnumObject> {
80         let mut result__: <IVssEnumObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
81         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IVssEnumObject>(result__)
82     }
AbortAllSnapshotsInProgress(&self) -> ::windows::runtime::Result<()>83     pub unsafe fn AbortAllSnapshotsInProgress(&self) -> ::windows::runtime::Result<()> {
84         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)).ok()
85     }
GetProviderCapability<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0) -> ::windows::runtime::Result<u64>86     pub unsafe fn GetProviderCapability<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pproviderid: Param0) -> ::windows::runtime::Result<u64> {
87         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
88         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), pproviderid.into_param().abi(), &mut result__).from_abi::<u64>(result__)
89     }
GetProviderContext<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<i32>90     pub unsafe fn GetProviderContext<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0) -> ::windows::runtime::Result<i32> {
91         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
92         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), providerid.into_param().abi(), &mut result__).from_abi::<i32>(result__)
93     }
SetProviderContext<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, lcontext: i32) -> ::windows::runtime::Result<()>94     pub unsafe fn SetProviderContext<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, lcontext: i32) -> ::windows::runtime::Result<()> {
95         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), providerid.into_param().abi(), ::std::mem::transmute(lcontext)).ok()
96     }
97 }
98 unsafe impl ::windows::runtime::Interface for IVssAdminEx {
99     type Vtable = IVssAdminEx_abi;
100     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2019076600, 45562, 16806, [150, 79, 185, 179, 107, 140, 216, 216]);
101 }
102 impl ::std::convert::From<IVssAdminEx> for ::windows::runtime::IUnknown {
from(value: IVssAdminEx) -> Self103     fn from(value: IVssAdminEx) -> Self {
104         unsafe { ::std::mem::transmute(value) }
105     }
106 }
107 impl ::std::convert::From<&IVssAdminEx> for ::windows::runtime::IUnknown {
from(value: &IVssAdminEx) -> Self108     fn from(value: &IVssAdminEx) -> Self {
109         ::std::convert::From::from(::std::clone::Clone::clone(value))
110     }
111 }
112 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssAdminEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>113     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
114         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
115     }
116 }
117 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssAdminEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>118     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
119         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
120     }
121 }
122 impl ::std::convert::From<IVssAdminEx> for IVssAdmin {
from(value: IVssAdminEx) -> Self123     fn from(value: IVssAdminEx) -> Self {
124         unsafe { ::std::mem::transmute(value) }
125     }
126 }
127 impl ::std::convert::From<&IVssAdminEx> for IVssAdmin {
from(value: &IVssAdminEx) -> Self128     fn from(value: &IVssAdminEx) -> Self {
129         ::std::convert::From::from(::std::clone::Clone::clone(value))
130     }
131 }
132 impl<'a> ::windows::runtime::IntoParam<'a, IVssAdmin> for IVssAdminEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssAdmin>133     fn into_param(self) -> ::windows::runtime::Param<'a, IVssAdmin> {
134         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssAdmin>::into(self))
135     }
136 }
137 impl<'a> ::windows::runtime::IntoParam<'a, IVssAdmin> for &IVssAdminEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssAdmin>138     fn into_param(self) -> ::windows::runtime::Param<'a, IVssAdmin> {
139         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssAdmin>::into(::std::clone::Clone::clone(self)))
140     }
141 }
142 #[repr(C)]
143 #[doc(hidden)]
144 pub struct IVssAdminEx_abi(
145     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pproviderid: ::windows::runtime::GUID, classid: ::windows::runtime::GUID, pwszprovidername: *const u16, eprovidertype: VSS_PROVIDER_TYPE, pwszproviderversion: *const u16, providerversionid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
150     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
151     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
152     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pproviderid: ::windows::runtime::GUID, plloriginalcapabilitymask: *mut u64) -> ::windows::runtime::HRESULT,
153     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID, plcontext: *mut i32) -> ::windows::runtime::HRESULT,
154     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID, lcontext: i32) -> ::windows::runtime::HRESULT,
155 );
156 #[repr(transparent)]
157 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
158 pub struct IVssAsync(::windows::runtime::IUnknown);
159 impl IVssAsync {
Cancel(&self) -> ::windows::runtime::Result<()>160     pub unsafe fn Cancel(&self) -> ::windows::runtime::Result<()> {
161         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
162     }
Wait(&self, dwmilliseconds: u32) -> ::windows::runtime::Result<()>163     pub unsafe fn Wait(&self, dwmilliseconds: u32) -> ::windows::runtime::Result<()> {
164         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwmilliseconds)).ok()
165     }
QueryStatus(&self, phrresult: *mut ::windows::runtime::HRESULT, preserved: *mut i32) -> ::windows::runtime::Result<()>166     pub unsafe fn QueryStatus(&self, phrresult: *mut ::windows::runtime::HRESULT, preserved: *mut i32) -> ::windows::runtime::Result<()> {
167         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(phrresult), ::std::mem::transmute(preserved)).ok()
168     }
169 }
170 unsafe impl ::windows::runtime::Interface for IVssAsync {
171     type Vtable = IVssAsync_abi;
172     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1350318004, 53083, 20117, [176, 175, 20, 235, 151, 103, 70, 126]);
173 }
174 impl ::std::convert::From<IVssAsync> for ::windows::runtime::IUnknown {
from(value: IVssAsync) -> Self175     fn from(value: IVssAsync) -> Self {
176         unsafe { ::std::mem::transmute(value) }
177     }
178 }
179 impl ::std::convert::From<&IVssAsync> for ::windows::runtime::IUnknown {
from(value: &IVssAsync) -> Self180     fn from(value: &IVssAsync) -> Self {
181         ::std::convert::From::from(::std::clone::Clone::clone(value))
182     }
183 }
184 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssAsync {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>185     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
186         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
187     }
188 }
189 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssAsync {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>190     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
191         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
192     }
193 }
194 #[repr(C)]
195 #[doc(hidden)]
196 pub struct IVssAsync_abi(
197     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
198     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwmilliseconds: u32) -> ::windows::runtime::HRESULT,
202     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phrresult: *mut ::windows::runtime::HRESULT, preserved: *mut i32) -> ::windows::runtime::HRESULT,
203 );
204 #[repr(transparent)]
205 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
206 pub struct IVssComponent(::windows::runtime::IUnknown);
207 impl IVssComponent {
208     #[cfg(feature = "Win32_Foundation")]
GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>209     pub unsafe fn GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
210         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpath)).ok()
211     }
GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()>212     pub unsafe fn GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()> {
213         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pct)).ok()
214     }
215     #[cfg(feature = "Win32_Foundation")]
GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>216     pub unsafe fn GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
217         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrname)).ok()
218     }
GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()>219     pub unsafe fn GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()> {
220         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbsucceeded)).ok()
221     }
GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()>222     pub unsafe fn GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()> {
223         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcmappings)).ok()
224     }
GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc>225     pub unsafe fn GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
226         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
227         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(imapping), &mut result__).from_abi::<IVssWMFiledesc>(result__)
228     }
229     #[cfg(feature = "Win32_Foundation")]
SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()>230     pub unsafe fn SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()> {
231         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), wszdata.into_param().abi()).ok()
232     }
233     #[cfg(feature = "Win32_Foundation")]
GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>234     pub unsafe fn GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
235         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrdata)).ok()
236     }
237     #[cfg(feature = "Win32_Foundation")]
AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()>238     pub unsafe fn AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()> {
239         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilename.into_param().abi(), wszranges.into_param().abi(), wszmetadata.into_param().abi()).ok()
240     }
GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()>241     pub unsafe fn GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()> {
242         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcpartialfiles)).ok()
243     }
244     #[cfg(feature = "Win32_Foundation")]
GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>245     pub unsafe fn GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
246         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipartialfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilename), ::std::mem::transmute(pbstrrange), ::std::mem::transmute(pbstrmetadata)).ok()
247     }
IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()>248     pub unsafe fn IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()> {
249         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbselectedforrestore)).ok()
250     }
GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()>251     pub unsafe fn GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()> {
252         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbadditionalrestores)).ok()
253     }
GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()>254     pub unsafe fn GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()> {
255         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcnewtarget)).ok()
256     }
GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc>257     pub unsafe fn GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
258         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
259         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(inewtarget), &mut result__).from_abi::<IVssWMFiledesc>(result__)
260     }
261     #[cfg(feature = "Win32_Foundation")]
AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszsourcepath: Param0, wszsourcefilename: Param1, wszsourcerangelist: Param2, wszdestinationpath: Param3, wszdestinationfilename: Param4, wszdestinationrangelist: Param5, ) -> ::windows::runtime::Result<()>262     pub unsafe fn AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
263         &self,
264         wszsourcepath: Param0,
265         wszsourcefilename: Param1,
266         wszsourcerangelist: Param2,
267         wszdestinationpath: Param3,
268         wszdestinationfilename: Param4,
269         wszdestinationrangelist: Param5,
270     ) -> ::windows::runtime::Result<()> {
271         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), wszsourcepath.into_param().abi(), wszsourcefilename.into_param().abi(), wszsourcerangelist.into_param().abi(), wszdestinationpath.into_param().abi(), wszdestinationfilename.into_param().abi(), wszdestinationrangelist.into_param().abi()).ok()
272     }
GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()>273     pub unsafe fn GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()> {
274         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdirectedtarget)).ok()
275     }
276     #[cfg(feature = "Win32_Foundation")]
GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>277     pub unsafe fn GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
278         (::windows::runtime::Interface::vtable(self).20)(
279             ::std::mem::transmute_copy(self),
280             ::std::mem::transmute(idirectedtarget),
281             ::std::mem::transmute(pbstrsourcepath),
282             ::std::mem::transmute(pbstrsourcefilename),
283             ::std::mem::transmute(pbstrsourcerangelist),
284             ::std::mem::transmute(pbstrdestinationpath),
285             ::std::mem::transmute(pbstrdestinationfilename),
286             ::std::mem::transmute(pbstrdestinationrangelist),
287         )
288         .ok()
289     }
290     #[cfg(feature = "Win32_Foundation")]
SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()>291     pub unsafe fn SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()> {
292         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), wszrestoremetadata.into_param().abi()).ok()
293     }
294     #[cfg(feature = "Win32_Foundation")]
GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>295     pub unsafe fn GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
296         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoremetadata)).ok()
297     }
SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>298     pub unsafe fn SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
299         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(target)).ok()
300     }
GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>301     pub unsafe fn GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
302         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptarget)).ok()
303     }
304     #[cfg(feature = "Win32_Foundation")]
SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()>305     pub unsafe fn SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
306         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), wszprerestorefailuremsg.into_param().abi()).ok()
307     }
308     #[cfg(feature = "Win32_Foundation")]
GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>309     pub unsafe fn GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
310         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrprerestorefailuremsg)).ok()
311     }
312     #[cfg(feature = "Win32_Foundation")]
SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()>313     pub unsafe fn SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
314         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), wszpostrestorefailuremsg.into_param().abi()).ok()
315     }
316     #[cfg(feature = "Win32_Foundation")]
GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>317     pub unsafe fn GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
318         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpostrestorefailuremsg)).ok()
319     }
320     #[cfg(feature = "Win32_Foundation")]
SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()>321     pub unsafe fn SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()> {
322         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), wszbackupstamp.into_param().abi()).ok()
323     }
324     #[cfg(feature = "Win32_Foundation")]
GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>325     pub unsafe fn GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
326         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
327     }
328     #[cfg(feature = "Win32_Foundation")]
GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>329     pub unsafe fn GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
330         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
331     }
332     #[cfg(feature = "Win32_Foundation")]
GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>333     pub unsafe fn GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
334         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupoptions)).ok()
335     }
336     #[cfg(feature = "Win32_Foundation")]
GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>337     pub unsafe fn GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
338         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoreoptions)).ok()
339     }
GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()>340     pub unsafe fn GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()> {
341         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcrestoresubcomponent)).ok()
342     }
343     #[cfg(feature = "Win32_Foundation")]
GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()>344     pub unsafe fn GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()> {
345         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(icomponent), ::std::mem::transmute(pbstrlogicalpath), ::std::mem::transmute(pbstrcomponentname), ::std::mem::transmute(pbrepair)).ok()
346     }
GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()>347     pub unsafe fn GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()> {
348         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(pstatus)).ok()
349     }
350     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()>351     pub unsafe fn AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()> {
352         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), ftlastmodifytime.into_param().abi()).ok()
353     }
354     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()>355     pub unsafe fn AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()> {
356         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), bstrlsnstring.into_param().abi()).ok()
357     }
GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()>358     pub unsafe fn GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()> {
359         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdifferencedfiles)).ok()
360     }
361     #[cfg(feature = "Win32_Foundation")]
GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()>362     pub unsafe fn GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()> {
363         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(idifferencedfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilespec), ::std::mem::transmute(pbrecursive), ::std::mem::transmute(pbstrlsnstring), ::std::mem::transmute(pftlastmodifytime)).ok()
364     }
365 }
366 unsafe impl ::windows::runtime::Interface for IVssComponent {
367     type Vtable = IVssComponent_abi;
368     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3536268438, 49441, 17688, [182, 39, 229, 169, 61, 1, 14, 173]);
369 }
370 impl ::std::convert::From<IVssComponent> for ::windows::runtime::IUnknown {
from(value: IVssComponent) -> Self371     fn from(value: IVssComponent) -> Self {
372         unsafe { ::std::mem::transmute(value) }
373     }
374 }
375 impl ::std::convert::From<&IVssComponent> for ::windows::runtime::IUnknown {
from(value: &IVssComponent) -> Self376     fn from(value: &IVssComponent) -> Self {
377         ::std::convert::From::from(::std::clone::Clone::clone(value))
378     }
379 }
380 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssComponent {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>381     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
382         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
383     }
384 }
385 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssComponent {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>386     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
387         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
388     }
389 }
390 #[repr(C)]
391 #[doc(hidden)]
392 pub struct IVssComponent_abi(
393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
396     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
397     #[cfg(not(feature = "Win32_Foundation"))] usize,
398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::HRESULT,
399     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
400     #[cfg(not(feature = "Win32_Foundation"))] usize,
401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbsucceeded: *mut bool) -> ::windows::runtime::HRESULT,
402     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcmappings: *mut u32) -> ::windows::runtime::HRESULT,
403     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imapping: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
405     #[cfg(not(feature = "Win32_Foundation"))] usize,
406     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
407     #[cfg(not(feature = "Win32_Foundation"))] usize,
408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilename: super::super::Foundation::PWSTR, wszranges: super::super::Foundation::PWSTR, wszmetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
409     #[cfg(not(feature = "Win32_Foundation"))] usize,
410     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcpartialfiles: *mut u32) -> ::windows::runtime::HRESULT,
411     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipartialfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrrange: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrmetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
412     #[cfg(not(feature = "Win32_Foundation"))] usize,
413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbselectedforrestore: *mut bool) -> ::windows::runtime::HRESULT,
414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbadditionalrestores: *mut bool) -> ::windows::runtime::HRESULT,
415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcnewtarget: *mut u32) -> ::windows::runtime::HRESULT,
416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inewtarget: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
417     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszsourcepath: super::super::Foundation::PWSTR, wszsourcefilename: super::super::Foundation::PWSTR, wszsourcerangelist: super::super::Foundation::PWSTR, wszdestinationpath: super::super::Foundation::PWSTR, wszdestinationfilename: super::super::Foundation::PWSTR, wszdestinationrangelist: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
418     #[cfg(not(feature = "Win32_Foundation"))] usize,
419     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdirectedtarget: *mut u32) -> ::windows::runtime::HRESULT,
420     #[cfg(feature = "Win32_Foundation")]
421     pub  unsafe extern "system" fn(
422         this: ::windows::runtime::RawPtr,
423         idirectedtarget: u32,
424         pbstrsourcepath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
425         pbstrsourcefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
426         pbstrsourcerangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
427         pbstrdestinationpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
428         pbstrdestinationfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
429         pbstrdestinationrangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
430     ) -> ::windows::runtime::HRESULT,
431     #[cfg(not(feature = "Win32_Foundation"))] usize,
432     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszrestoremetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
433     #[cfg(not(feature = "Win32_Foundation"))] usize,
434     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoremetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
435     #[cfg(not(feature = "Win32_Foundation"))] usize,
436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, target: VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
438     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszprerestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
439     #[cfg(not(feature = "Win32_Foundation"))] usize,
440     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrprerestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
441     #[cfg(not(feature = "Win32_Foundation"))] usize,
442     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpostrestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
443     #[cfg(not(feature = "Win32_Foundation"))] usize,
444     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpostrestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
445     #[cfg(not(feature = "Win32_Foundation"))] usize,
446     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszbackupstamp: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
447     #[cfg(not(feature = "Win32_Foundation"))] usize,
448     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
449     #[cfg(not(feature = "Win32_Foundation"))] usize,
450     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
451     #[cfg(not(feature = "Win32_Foundation"))] usize,
452     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
453     #[cfg(not(feature = "Win32_Foundation"))] usize,
454     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoreoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
455     #[cfg(not(feature = "Win32_Foundation"))] usize,
456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::HRESULT,
457     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icomponent: u32, pbstrlogicalpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrcomponentname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrepair: *mut bool) -> ::windows::runtime::HRESULT,
458     #[cfg(not(feature = "Win32_Foundation"))] usize,
459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::HRESULT,
460     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, ftlastmodifytime: super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
461     #[cfg(not(feature = "Win32_Foundation"))] usize,
462     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, bstrlsnstring: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
463     #[cfg(not(feature = "Win32_Foundation"))] usize,
464     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdifferencedfiles: *mut u32) -> ::windows::runtime::HRESULT,
465     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idifferencedfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilespec: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
466     #[cfg(not(feature = "Win32_Foundation"))] usize,
467 );
468 #[repr(transparent)]
469 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
470 pub struct IVssComponentEx(::windows::runtime::IUnknown);
471 impl IVssComponentEx {
472     #[cfg(feature = "Win32_Foundation")]
GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>473     pub unsafe fn GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
474         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpath)).ok()
475     }
GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()>476     pub unsafe fn GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()> {
477         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pct)).ok()
478     }
479     #[cfg(feature = "Win32_Foundation")]
GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>480     pub unsafe fn GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
481         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrname)).ok()
482     }
GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()>483     pub unsafe fn GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()> {
484         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbsucceeded)).ok()
485     }
GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()>486     pub unsafe fn GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()> {
487         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcmappings)).ok()
488     }
GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc>489     pub unsafe fn GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
490         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
491         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(imapping), &mut result__).from_abi::<IVssWMFiledesc>(result__)
492     }
493     #[cfg(feature = "Win32_Foundation")]
SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()>494     pub unsafe fn SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()> {
495         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), wszdata.into_param().abi()).ok()
496     }
497     #[cfg(feature = "Win32_Foundation")]
GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>498     pub unsafe fn GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
499         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrdata)).ok()
500     }
501     #[cfg(feature = "Win32_Foundation")]
AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()>502     pub unsafe fn AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()> {
503         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilename.into_param().abi(), wszranges.into_param().abi(), wszmetadata.into_param().abi()).ok()
504     }
GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()>505     pub unsafe fn GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()> {
506         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcpartialfiles)).ok()
507     }
508     #[cfg(feature = "Win32_Foundation")]
GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>509     pub unsafe fn GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
510         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipartialfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilename), ::std::mem::transmute(pbstrrange), ::std::mem::transmute(pbstrmetadata)).ok()
511     }
IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()>512     pub unsafe fn IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()> {
513         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbselectedforrestore)).ok()
514     }
GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()>515     pub unsafe fn GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()> {
516         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbadditionalrestores)).ok()
517     }
GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()>518     pub unsafe fn GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()> {
519         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcnewtarget)).ok()
520     }
GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc>521     pub unsafe fn GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
522         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
523         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(inewtarget), &mut result__).from_abi::<IVssWMFiledesc>(result__)
524     }
525     #[cfg(feature = "Win32_Foundation")]
AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszsourcepath: Param0, wszsourcefilename: Param1, wszsourcerangelist: Param2, wszdestinationpath: Param3, wszdestinationfilename: Param4, wszdestinationrangelist: Param5, ) -> ::windows::runtime::Result<()>526     pub unsafe fn AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
527         &self,
528         wszsourcepath: Param0,
529         wszsourcefilename: Param1,
530         wszsourcerangelist: Param2,
531         wszdestinationpath: Param3,
532         wszdestinationfilename: Param4,
533         wszdestinationrangelist: Param5,
534     ) -> ::windows::runtime::Result<()> {
535         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), wszsourcepath.into_param().abi(), wszsourcefilename.into_param().abi(), wszsourcerangelist.into_param().abi(), wszdestinationpath.into_param().abi(), wszdestinationfilename.into_param().abi(), wszdestinationrangelist.into_param().abi()).ok()
536     }
GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()>537     pub unsafe fn GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()> {
538         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdirectedtarget)).ok()
539     }
540     #[cfg(feature = "Win32_Foundation")]
GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>541     pub unsafe fn GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
542         (::windows::runtime::Interface::vtable(self).20)(
543             ::std::mem::transmute_copy(self),
544             ::std::mem::transmute(idirectedtarget),
545             ::std::mem::transmute(pbstrsourcepath),
546             ::std::mem::transmute(pbstrsourcefilename),
547             ::std::mem::transmute(pbstrsourcerangelist),
548             ::std::mem::transmute(pbstrdestinationpath),
549             ::std::mem::transmute(pbstrdestinationfilename),
550             ::std::mem::transmute(pbstrdestinationrangelist),
551         )
552         .ok()
553     }
554     #[cfg(feature = "Win32_Foundation")]
SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()>555     pub unsafe fn SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()> {
556         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), wszrestoremetadata.into_param().abi()).ok()
557     }
558     #[cfg(feature = "Win32_Foundation")]
GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>559     pub unsafe fn GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
560         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoremetadata)).ok()
561     }
SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>562     pub unsafe fn SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
563         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(target)).ok()
564     }
GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>565     pub unsafe fn GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
566         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptarget)).ok()
567     }
568     #[cfg(feature = "Win32_Foundation")]
SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()>569     pub unsafe fn SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
570         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), wszprerestorefailuremsg.into_param().abi()).ok()
571     }
572     #[cfg(feature = "Win32_Foundation")]
GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>573     pub unsafe fn GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
574         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrprerestorefailuremsg)).ok()
575     }
576     #[cfg(feature = "Win32_Foundation")]
SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()>577     pub unsafe fn SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
578         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), wszpostrestorefailuremsg.into_param().abi()).ok()
579     }
580     #[cfg(feature = "Win32_Foundation")]
GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>581     pub unsafe fn GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
582         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpostrestorefailuremsg)).ok()
583     }
584     #[cfg(feature = "Win32_Foundation")]
SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()>585     pub unsafe fn SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()> {
586         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), wszbackupstamp.into_param().abi()).ok()
587     }
588     #[cfg(feature = "Win32_Foundation")]
GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>589     pub unsafe fn GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
590         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
591     }
592     #[cfg(feature = "Win32_Foundation")]
GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>593     pub unsafe fn GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
594         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
595     }
596     #[cfg(feature = "Win32_Foundation")]
GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>597     pub unsafe fn GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
598         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupoptions)).ok()
599     }
600     #[cfg(feature = "Win32_Foundation")]
GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>601     pub unsafe fn GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
602         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoreoptions)).ok()
603     }
GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()>604     pub unsafe fn GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()> {
605         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcrestoresubcomponent)).ok()
606     }
607     #[cfg(feature = "Win32_Foundation")]
GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()>608     pub unsafe fn GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()> {
609         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(icomponent), ::std::mem::transmute(pbstrlogicalpath), ::std::mem::transmute(pbstrcomponentname), ::std::mem::transmute(pbrepair)).ok()
610     }
GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()>611     pub unsafe fn GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()> {
612         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(pstatus)).ok()
613     }
614     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()>615     pub unsafe fn AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()> {
616         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), ftlastmodifytime.into_param().abi()).ok()
617     }
618     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()>619     pub unsafe fn AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()> {
620         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), bstrlsnstring.into_param().abi()).ok()
621     }
GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()>622     pub unsafe fn GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()> {
623         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdifferencedfiles)).ok()
624     }
625     #[cfg(feature = "Win32_Foundation")]
GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()>626     pub unsafe fn GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()> {
627         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(idifferencedfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilespec), ::std::mem::transmute(pbrecursive), ::std::mem::transmute(pbstrlsnstring), ::std::mem::transmute(pftlastmodifytime)).ok()
628     }
629     #[cfg(feature = "Win32_Foundation")]
SetPrepareForBackupFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()>630     pub unsafe fn SetPrepareForBackupFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()> {
631         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), wszfailuremsg.into_param().abi()).ok()
632     }
633     #[cfg(feature = "Win32_Foundation")]
SetPostSnapshotFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()>634     pub unsafe fn SetPostSnapshotFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()> {
635         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), wszfailuremsg.into_param().abi()).ok()
636     }
637     #[cfg(feature = "Win32_Foundation")]
GetPrepareForBackupFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>638     pub unsafe fn GetPrepareForBackupFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
639         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
640         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
641     }
642     #[cfg(feature = "Win32_Foundation")]
GetPostSnapshotFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>643     pub unsafe fn GetPostSnapshotFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
644         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
645         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
646     }
GetAuthoritativeRestore(&self) -> ::windows::runtime::Result<bool>647     pub unsafe fn GetAuthoritativeRestore(&self) -> ::windows::runtime::Result<bool> {
648         let mut result__: <bool as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
649         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), &mut result__).from_abi::<bool>(result__)
650     }
651     #[cfg(feature = "Win32_Foundation")]
GetRollForward(&self, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>652     pub unsafe fn GetRollForward(&self, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
653         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(prolltype), ::std::mem::transmute(pbstrpoint)).ok()
654     }
655     #[cfg(feature = "Win32_Foundation")]
GetRestoreName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>656     pub unsafe fn GetRestoreName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
657         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
658         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
659     }
660 }
661 unsafe impl ::windows::runtime::Interface for IVssComponentEx {
662     type Vtable = IVssComponentEx_abi;
663     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(359435102, 61745, 19415, [156, 151, 209, 146, 59, 231, 225, 250]);
664 }
665 impl ::std::convert::From<IVssComponentEx> for ::windows::runtime::IUnknown {
from(value: IVssComponentEx) -> Self666     fn from(value: IVssComponentEx) -> Self {
667         unsafe { ::std::mem::transmute(value) }
668     }
669 }
670 impl ::std::convert::From<&IVssComponentEx> for ::windows::runtime::IUnknown {
from(value: &IVssComponentEx) -> Self671     fn from(value: &IVssComponentEx) -> Self {
672         ::std::convert::From::from(::std::clone::Clone::clone(value))
673     }
674 }
675 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssComponentEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>676     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
677         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
678     }
679 }
680 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssComponentEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>681     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
682         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
683     }
684 }
685 impl ::std::convert::From<IVssComponentEx> for IVssComponent {
from(value: IVssComponentEx) -> Self686     fn from(value: IVssComponentEx) -> Self {
687         unsafe { ::std::mem::transmute(value) }
688     }
689 }
690 impl ::std::convert::From<&IVssComponentEx> for IVssComponent {
from(value: &IVssComponentEx) -> Self691     fn from(value: &IVssComponentEx) -> Self {
692         ::std::convert::From::from(::std::clone::Clone::clone(value))
693     }
694 }
695 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponent> for IVssComponentEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponent>696     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponent> {
697         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponent>::into(self))
698     }
699 }
700 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponent> for &IVssComponentEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponent>701     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponent> {
702         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponent>::into(::std::clone::Clone::clone(self)))
703     }
704 }
705 #[repr(C)]
706 #[doc(hidden)]
707 pub struct IVssComponentEx_abi(
708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
710     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
711     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
712     #[cfg(not(feature = "Win32_Foundation"))] usize,
713     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::HRESULT,
714     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
715     #[cfg(not(feature = "Win32_Foundation"))] usize,
716     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbsucceeded: *mut bool) -> ::windows::runtime::HRESULT,
717     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcmappings: *mut u32) -> ::windows::runtime::HRESULT,
718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imapping: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
719     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
720     #[cfg(not(feature = "Win32_Foundation"))] usize,
721     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
722     #[cfg(not(feature = "Win32_Foundation"))] usize,
723     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilename: super::super::Foundation::PWSTR, wszranges: super::super::Foundation::PWSTR, wszmetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
724     #[cfg(not(feature = "Win32_Foundation"))] usize,
725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcpartialfiles: *mut u32) -> ::windows::runtime::HRESULT,
726     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipartialfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrrange: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrmetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
727     #[cfg(not(feature = "Win32_Foundation"))] usize,
728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbselectedforrestore: *mut bool) -> ::windows::runtime::HRESULT,
729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbadditionalrestores: *mut bool) -> ::windows::runtime::HRESULT,
730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcnewtarget: *mut u32) -> ::windows::runtime::HRESULT,
731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inewtarget: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
732     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszsourcepath: super::super::Foundation::PWSTR, wszsourcefilename: super::super::Foundation::PWSTR, wszsourcerangelist: super::super::Foundation::PWSTR, wszdestinationpath: super::super::Foundation::PWSTR, wszdestinationfilename: super::super::Foundation::PWSTR, wszdestinationrangelist: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
733     #[cfg(not(feature = "Win32_Foundation"))] usize,
734     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdirectedtarget: *mut u32) -> ::windows::runtime::HRESULT,
735     #[cfg(feature = "Win32_Foundation")]
736     pub  unsafe extern "system" fn(
737         this: ::windows::runtime::RawPtr,
738         idirectedtarget: u32,
739         pbstrsourcepath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
740         pbstrsourcefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
741         pbstrsourcerangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
742         pbstrdestinationpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
743         pbstrdestinationfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
744         pbstrdestinationrangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
745     ) -> ::windows::runtime::HRESULT,
746     #[cfg(not(feature = "Win32_Foundation"))] usize,
747     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszrestoremetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
748     #[cfg(not(feature = "Win32_Foundation"))] usize,
749     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoremetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
750     #[cfg(not(feature = "Win32_Foundation"))] usize,
751     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, target: VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
752     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
753     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszprerestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
754     #[cfg(not(feature = "Win32_Foundation"))] usize,
755     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrprerestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
756     #[cfg(not(feature = "Win32_Foundation"))] usize,
757     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpostrestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
758     #[cfg(not(feature = "Win32_Foundation"))] usize,
759     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpostrestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
760     #[cfg(not(feature = "Win32_Foundation"))] usize,
761     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszbackupstamp: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
762     #[cfg(not(feature = "Win32_Foundation"))] usize,
763     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
764     #[cfg(not(feature = "Win32_Foundation"))] usize,
765     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
766     #[cfg(not(feature = "Win32_Foundation"))] usize,
767     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
768     #[cfg(not(feature = "Win32_Foundation"))] usize,
769     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoreoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
770     #[cfg(not(feature = "Win32_Foundation"))] usize,
771     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::HRESULT,
772     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icomponent: u32, pbstrlogicalpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrcomponentname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrepair: *mut bool) -> ::windows::runtime::HRESULT,
773     #[cfg(not(feature = "Win32_Foundation"))] usize,
774     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::HRESULT,
775     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, ftlastmodifytime: super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
776     #[cfg(not(feature = "Win32_Foundation"))] usize,
777     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, bstrlsnstring: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
778     #[cfg(not(feature = "Win32_Foundation"))] usize,
779     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdifferencedfiles: *mut u32) -> ::windows::runtime::HRESULT,
780     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idifferencedfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilespec: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
781     #[cfg(not(feature = "Win32_Foundation"))] usize,
782     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszfailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
783     #[cfg(not(feature = "Win32_Foundation"))] usize,
784     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszfailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
785     #[cfg(not(feature = "Win32_Foundation"))] usize,
786     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrfailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
787     #[cfg(not(feature = "Win32_Foundation"))] usize,
788     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrfailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
789     #[cfg(not(feature = "Win32_Foundation"))] usize,
790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbauth: *mut bool) -> ::windows::runtime::HRESULT,
791     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
792     #[cfg(not(feature = "Win32_Foundation"))] usize,
793     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
794     #[cfg(not(feature = "Win32_Foundation"))] usize,
795 );
796 #[repr(transparent)]
797 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
798 pub struct IVssComponentEx2(::windows::runtime::IUnknown);
799 impl IVssComponentEx2 {
800     #[cfg(feature = "Win32_Foundation")]
GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>801     pub unsafe fn GetLogicalPath(&self, pbstrpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
802         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpath)).ok()
803     }
GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()>804     pub unsafe fn GetComponentType(&self, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::Result<()> {
805         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pct)).ok()
806     }
807     #[cfg(feature = "Win32_Foundation")]
GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>808     pub unsafe fn GetComponentName(&self, pbstrname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
809         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrname)).ok()
810     }
GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()>811     pub unsafe fn GetBackupSucceeded(&self, pbsucceeded: *mut bool) -> ::windows::runtime::Result<()> {
812         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbsucceeded)).ok()
813     }
GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()>814     pub unsafe fn GetAlternateLocationMappingCount(&self, pcmappings: *mut u32) -> ::windows::runtime::Result<()> {
815         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcmappings)).ok()
816     }
GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc>817     pub unsafe fn GetAlternateLocationMapping(&self, imapping: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
818         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
819         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(imapping), &mut result__).from_abi::<IVssWMFiledesc>(result__)
820     }
821     #[cfg(feature = "Win32_Foundation")]
SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()>822     pub unsafe fn SetBackupMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszdata: Param0) -> ::windows::runtime::Result<()> {
823         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), wszdata.into_param().abi()).ok()
824     }
825     #[cfg(feature = "Win32_Foundation")]
GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>826     pub unsafe fn GetBackupMetadata(&self, pbstrdata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
827         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrdata)).ok()
828     }
829     #[cfg(feature = "Win32_Foundation")]
AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()>830     pub unsafe fn AddPartialFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilename: Param1, wszranges: Param2, wszmetadata: Param3) -> ::windows::runtime::Result<()> {
831         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilename.into_param().abi(), wszranges.into_param().abi(), wszmetadata.into_param().abi()).ok()
832     }
GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()>833     pub unsafe fn GetPartialFileCount(&self, pcpartialfiles: *mut u32) -> ::windows::runtime::Result<()> {
834         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcpartialfiles)).ok()
835     }
836     #[cfg(feature = "Win32_Foundation")]
GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>837     pub unsafe fn GetPartialFile(&self, ipartialfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilename: *mut super::super::Foundation::BSTR, pbstrrange: *mut super::super::Foundation::BSTR, pbstrmetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
838         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(ipartialfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilename), ::std::mem::transmute(pbstrrange), ::std::mem::transmute(pbstrmetadata)).ok()
839     }
IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()>840     pub unsafe fn IsSelectedForRestore(&self, pbselectedforrestore: *mut bool) -> ::windows::runtime::Result<()> {
841         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbselectedforrestore)).ok()
842     }
GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()>843     pub unsafe fn GetAdditionalRestores(&self, pbadditionalrestores: *mut bool) -> ::windows::runtime::Result<()> {
844         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbadditionalrestores)).ok()
845     }
GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()>846     pub unsafe fn GetNewTargetCount(&self, pcnewtarget: *mut u32) -> ::windows::runtime::Result<()> {
847         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcnewtarget)).ok()
848     }
GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc>849     pub unsafe fn GetNewTarget(&self, inewtarget: u32) -> ::windows::runtime::Result<IVssWMFiledesc> {
850         let mut result__: <IVssWMFiledesc as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
851         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(inewtarget), &mut result__).from_abi::<IVssWMFiledesc>(result__)
852     }
853     #[cfg(feature = "Win32_Foundation")]
AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszsourcepath: Param0, wszsourcefilename: Param1, wszsourcerangelist: Param2, wszdestinationpath: Param3, wszdestinationfilename: Param4, wszdestinationrangelist: Param5, ) -> ::windows::runtime::Result<()>854     pub unsafe fn AddDirectedTarget<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
855         &self,
856         wszsourcepath: Param0,
857         wszsourcefilename: Param1,
858         wszsourcerangelist: Param2,
859         wszdestinationpath: Param3,
860         wszdestinationfilename: Param4,
861         wszdestinationrangelist: Param5,
862     ) -> ::windows::runtime::Result<()> {
863         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), wszsourcepath.into_param().abi(), wszsourcefilename.into_param().abi(), wszsourcerangelist.into_param().abi(), wszdestinationpath.into_param().abi(), wszdestinationfilename.into_param().abi(), wszdestinationrangelist.into_param().abi()).ok()
864     }
GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()>865     pub unsafe fn GetDirectedTargetCount(&self, pcdirectedtarget: *mut u32) -> ::windows::runtime::Result<()> {
866         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdirectedtarget)).ok()
867     }
868     #[cfg(feature = "Win32_Foundation")]
GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>869     pub unsafe fn GetDirectedTarget(&self, idirectedtarget: u32, pbstrsourcepath: *mut super::super::Foundation::BSTR, pbstrsourcefilename: *mut super::super::Foundation::BSTR, pbstrsourcerangelist: *mut super::super::Foundation::BSTR, pbstrdestinationpath: *mut super::super::Foundation::BSTR, pbstrdestinationfilename: *mut super::super::Foundation::BSTR, pbstrdestinationrangelist: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
870         (::windows::runtime::Interface::vtable(self).20)(
871             ::std::mem::transmute_copy(self),
872             ::std::mem::transmute(idirectedtarget),
873             ::std::mem::transmute(pbstrsourcepath),
874             ::std::mem::transmute(pbstrsourcefilename),
875             ::std::mem::transmute(pbstrsourcerangelist),
876             ::std::mem::transmute(pbstrdestinationpath),
877             ::std::mem::transmute(pbstrdestinationfilename),
878             ::std::mem::transmute(pbstrdestinationrangelist),
879         )
880         .ok()
881     }
882     #[cfg(feature = "Win32_Foundation")]
SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()>883     pub unsafe fn SetRestoreMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszrestoremetadata: Param0) -> ::windows::runtime::Result<()> {
884         (::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self), wszrestoremetadata.into_param().abi()).ok()
885     }
886     #[cfg(feature = "Win32_Foundation")]
GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>887     pub unsafe fn GetRestoreMetadata(&self, pbstrrestoremetadata: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
888         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoremetadata)).ok()
889     }
SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>890     pub unsafe fn SetRestoreTarget(&self, target: VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
891         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), ::std::mem::transmute(target)).ok()
892     }
GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()>893     pub unsafe fn GetRestoreTarget(&self, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::Result<()> {
894         (::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self), ::std::mem::transmute(ptarget)).ok()
895     }
896     #[cfg(feature = "Win32_Foundation")]
SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()>897     pub unsafe fn SetPreRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszprerestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
898         (::windows::runtime::Interface::vtable(self).25)(::std::mem::transmute_copy(self), wszprerestorefailuremsg.into_param().abi()).ok()
899     }
900     #[cfg(feature = "Win32_Foundation")]
GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>901     pub unsafe fn GetPreRestoreFailureMsg(&self, pbstrprerestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
902         (::windows::runtime::Interface::vtable(self).26)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrprerestorefailuremsg)).ok()
903     }
904     #[cfg(feature = "Win32_Foundation")]
SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()>905     pub unsafe fn SetPostRestoreFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpostrestorefailuremsg: Param0) -> ::windows::runtime::Result<()> {
906         (::windows::runtime::Interface::vtable(self).27)(::std::mem::transmute_copy(self), wszpostrestorefailuremsg.into_param().abi()).ok()
907     }
908     #[cfg(feature = "Win32_Foundation")]
GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>909     pub unsafe fn GetPostRestoreFailureMsg(&self, pbstrpostrestorefailuremsg: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
910         (::windows::runtime::Interface::vtable(self).28)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrpostrestorefailuremsg)).ok()
911     }
912     #[cfg(feature = "Win32_Foundation")]
SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()>913     pub unsafe fn SetBackupStamp<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszbackupstamp: Param0) -> ::windows::runtime::Result<()> {
914         (::windows::runtime::Interface::vtable(self).29)(::std::mem::transmute_copy(self), wszbackupstamp.into_param().abi()).ok()
915     }
916     #[cfg(feature = "Win32_Foundation")]
GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>917     pub unsafe fn GetBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
918         (::windows::runtime::Interface::vtable(self).30)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
919     }
920     #[cfg(feature = "Win32_Foundation")]
GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>921     pub unsafe fn GetPreviousBackupStamp(&self, pbstrbackupstamp: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
922         (::windows::runtime::Interface::vtable(self).31)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupstamp)).ok()
923     }
924     #[cfg(feature = "Win32_Foundation")]
GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>925     pub unsafe fn GetBackupOptions(&self, pbstrbackupoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
926         (::windows::runtime::Interface::vtable(self).32)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrbackupoptions)).ok()
927     }
928     #[cfg(feature = "Win32_Foundation")]
GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>929     pub unsafe fn GetRestoreOptions(&self, pbstrrestoreoptions: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
930         (::windows::runtime::Interface::vtable(self).33)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrrestoreoptions)).ok()
931     }
GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()>932     pub unsafe fn GetRestoreSubcomponentCount(&self, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::Result<()> {
933         (::windows::runtime::Interface::vtable(self).34)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcrestoresubcomponent)).ok()
934     }
935     #[cfg(feature = "Win32_Foundation")]
GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()>936     pub unsafe fn GetRestoreSubcomponent(&self, icomponent: u32, pbstrlogicalpath: *mut super::super::Foundation::BSTR, pbstrcomponentname: *mut super::super::Foundation::BSTR, pbrepair: *mut bool) -> ::windows::runtime::Result<()> {
937         (::windows::runtime::Interface::vtable(self).35)(::std::mem::transmute_copy(self), ::std::mem::transmute(icomponent), ::std::mem::transmute(pbstrlogicalpath), ::std::mem::transmute(pbstrcomponentname), ::std::mem::transmute(pbrepair)).ok()
938     }
GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()>939     pub unsafe fn GetFileRestoreStatus(&self, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::Result<()> {
940         (::windows::runtime::Interface::vtable(self).36)(::std::mem::transmute_copy(self), ::std::mem::transmute(pstatus)).ok()
941     }
942     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()>943     pub unsafe fn AddDifferencedFilesByLastModifyTime<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::FILETIME>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, ftlastmodifytime: Param3) -> ::windows::runtime::Result<()> {
944         (::windows::runtime::Interface::vtable(self).37)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), ftlastmodifytime.into_param().abi()).ok()
945     }
946     #[cfg(feature = "Win32_Foundation")]
AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()>947     pub unsafe fn AddDifferencedFilesByLastModifyLSN<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: Param2, bstrlsnstring: Param3) -> ::windows::runtime::Result<()> {
948         (::windows::runtime::Interface::vtable(self).38)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), brecursive.into_param().abi(), bstrlsnstring.into_param().abi()).ok()
949     }
GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()>950     pub unsafe fn GetDifferencedFilesCount(&self, pcdifferencedfiles: *mut u32) -> ::windows::runtime::Result<()> {
951         (::windows::runtime::Interface::vtable(self).39)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcdifferencedfiles)).ok()
952     }
953     #[cfg(feature = "Win32_Foundation")]
GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()>954     pub unsafe fn GetDifferencedFile(&self, idifferencedfile: u32, pbstrpath: *mut super::super::Foundation::BSTR, pbstrfilespec: *mut super::super::Foundation::BSTR, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut super::super::Foundation::BSTR, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()> {
955         (::windows::runtime::Interface::vtable(self).40)(::std::mem::transmute_copy(self), ::std::mem::transmute(idifferencedfile), ::std::mem::transmute(pbstrpath), ::std::mem::transmute(pbstrfilespec), ::std::mem::transmute(pbrecursive), ::std::mem::transmute(pbstrlsnstring), ::std::mem::transmute(pftlastmodifytime)).ok()
956     }
957     #[cfg(feature = "Win32_Foundation")]
SetPrepareForBackupFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()>958     pub unsafe fn SetPrepareForBackupFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()> {
959         (::windows::runtime::Interface::vtable(self).41)(::std::mem::transmute_copy(self), wszfailuremsg.into_param().abi()).ok()
960     }
961     #[cfg(feature = "Win32_Foundation")]
SetPostSnapshotFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()>962     pub unsafe fn SetPostSnapshotFailureMsg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszfailuremsg: Param0) -> ::windows::runtime::Result<()> {
963         (::windows::runtime::Interface::vtable(self).42)(::std::mem::transmute_copy(self), wszfailuremsg.into_param().abi()).ok()
964     }
965     #[cfg(feature = "Win32_Foundation")]
GetPrepareForBackupFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>966     pub unsafe fn GetPrepareForBackupFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
967         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
968         (::windows::runtime::Interface::vtable(self).43)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
969     }
970     #[cfg(feature = "Win32_Foundation")]
GetPostSnapshotFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>971     pub unsafe fn GetPostSnapshotFailureMsg(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
972         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
973         (::windows::runtime::Interface::vtable(self).44)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
974     }
GetAuthoritativeRestore(&self) -> ::windows::runtime::Result<bool>975     pub unsafe fn GetAuthoritativeRestore(&self) -> ::windows::runtime::Result<bool> {
976         let mut result__: <bool as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
977         (::windows::runtime::Interface::vtable(self).45)(::std::mem::transmute_copy(self), &mut result__).from_abi::<bool>(result__)
978     }
979     #[cfg(feature = "Win32_Foundation")]
GetRollForward(&self, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>980     pub unsafe fn GetRollForward(&self, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
981         (::windows::runtime::Interface::vtable(self).46)(::std::mem::transmute_copy(self), ::std::mem::transmute(prolltype), ::std::mem::transmute(pbstrpoint)).ok()
982     }
983     #[cfg(feature = "Win32_Foundation")]
GetRestoreName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>984     pub unsafe fn GetRestoreName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
985         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
986         (::windows::runtime::Interface::vtable(self).47)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
987     }
988     #[cfg(feature = "Win32_Foundation")]
SetFailure<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: Param2, dwreserved: u32) -> ::windows::runtime::Result<()>989     pub unsafe fn SetFailure<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: Param2, dwreserved: u32) -> ::windows::runtime::Result<()> {
990         (::windows::runtime::Interface::vtable(self).48)(::std::mem::transmute_copy(self), ::std::mem::transmute(hr), ::std::mem::transmute(hrapplication), wszapplicationmessage.into_param().abi(), ::std::mem::transmute(dwreserved)).ok()
991     }
992     #[cfg(feature = "Win32_Foundation")]
GetFailure(&self, phr: *mut ::windows::runtime::HRESULT, phrapplication: *mut ::windows::runtime::HRESULT, pbstrapplicationmessage: *mut super::super::Foundation::BSTR, pdwreserved: *mut u32) -> ::windows::runtime::Result<()>993     pub unsafe fn GetFailure(&self, phr: *mut ::windows::runtime::HRESULT, phrapplication: *mut ::windows::runtime::HRESULT, pbstrapplicationmessage: *mut super::super::Foundation::BSTR, pdwreserved: *mut u32) -> ::windows::runtime::Result<()> {
994         (::windows::runtime::Interface::vtable(self).49)(::std::mem::transmute_copy(self), ::std::mem::transmute(phr), ::std::mem::transmute(phrapplication), ::std::mem::transmute(pbstrapplicationmessage), ::std::mem::transmute(pdwreserved)).ok()
995     }
996 }
997 unsafe impl ::windows::runtime::Interface for IVssComponentEx2 {
998     type Vtable = IVssComponentEx2_abi;
999     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(995877106, 1961, 20043, [189, 211, 207, 220, 142, 44, 13, 45]);
1000 }
1001 impl ::std::convert::From<IVssComponentEx2> for ::windows::runtime::IUnknown {
from(value: IVssComponentEx2) -> Self1002     fn from(value: IVssComponentEx2) -> Self {
1003         unsafe { ::std::mem::transmute(value) }
1004     }
1005 }
1006 impl ::std::convert::From<&IVssComponentEx2> for ::windows::runtime::IUnknown {
from(value: &IVssComponentEx2) -> Self1007     fn from(value: &IVssComponentEx2) -> Self {
1008         ::std::convert::From::from(::std::clone::Clone::clone(value))
1009     }
1010 }
1011 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1012     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1013         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1014     }
1015 }
1016 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1017     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1018         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1019     }
1020 }
1021 impl ::std::convert::From<IVssComponentEx2> for IVssComponentEx {
from(value: IVssComponentEx2) -> Self1022     fn from(value: IVssComponentEx2) -> Self {
1023         unsafe { ::std::mem::transmute(value) }
1024     }
1025 }
1026 impl ::std::convert::From<&IVssComponentEx2> for IVssComponentEx {
from(value: &IVssComponentEx2) -> Self1027     fn from(value: &IVssComponentEx2) -> Self {
1028         ::std::convert::From::from(::std::clone::Clone::clone(value))
1029     }
1030 }
1031 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponentEx> for IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponentEx>1032     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponentEx> {
1033         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponentEx>::into(self))
1034     }
1035 }
1036 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponentEx> for &IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponentEx>1037     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponentEx> {
1038         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponentEx>::into(::std::clone::Clone::clone(self)))
1039     }
1040 }
1041 impl ::std::convert::From<IVssComponentEx2> for IVssComponent {
from(value: IVssComponentEx2) -> Self1042     fn from(value: IVssComponentEx2) -> Self {
1043         unsafe { ::std::mem::transmute(value) }
1044     }
1045 }
1046 impl ::std::convert::From<&IVssComponentEx2> for IVssComponent {
from(value: &IVssComponentEx2) -> Self1047     fn from(value: &IVssComponentEx2) -> Self {
1048         ::std::convert::From::from(::std::clone::Clone::clone(value))
1049     }
1050 }
1051 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponent> for IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponent>1052     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponent> {
1053         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponent>::into(self))
1054     }
1055 }
1056 impl<'a> ::windows::runtime::IntoParam<'a, IVssComponent> for &IVssComponentEx2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssComponent>1057     fn into_param(self) -> ::windows::runtime::Param<'a, IVssComponent> {
1058         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssComponent>::into(::std::clone::Clone::clone(self)))
1059     }
1060 }
1061 #[repr(C)]
1062 #[doc(hidden)]
1063 pub struct IVssComponentEx2_abi(
1064     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1067     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1068     #[cfg(not(feature = "Win32_Foundation"))] usize,
1069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pct: *mut VSS_COMPONENT_TYPE) -> ::windows::runtime::HRESULT,
1070     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1071     #[cfg(not(feature = "Win32_Foundation"))] usize,
1072     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbsucceeded: *mut bool) -> ::windows::runtime::HRESULT,
1073     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcmappings: *mut u32) -> ::windows::runtime::HRESULT,
1074     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, imapping: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1075     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1076     #[cfg(not(feature = "Win32_Foundation"))] usize,
1077     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1078     #[cfg(not(feature = "Win32_Foundation"))] usize,
1079     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilename: super::super::Foundation::PWSTR, wszranges: super::super::Foundation::PWSTR, wszmetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1080     #[cfg(not(feature = "Win32_Foundation"))] usize,
1081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcpartialfiles: *mut u32) -> ::windows::runtime::HRESULT,
1082     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ipartialfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrrange: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrmetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1083     #[cfg(not(feature = "Win32_Foundation"))] usize,
1084     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbselectedforrestore: *mut bool) -> ::windows::runtime::HRESULT,
1085     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbadditionalrestores: *mut bool) -> ::windows::runtime::HRESULT,
1086     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcnewtarget: *mut u32) -> ::windows::runtime::HRESULT,
1087     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, inewtarget: u32, ppfiledesc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1088     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszsourcepath: super::super::Foundation::PWSTR, wszsourcefilename: super::super::Foundation::PWSTR, wszsourcerangelist: super::super::Foundation::PWSTR, wszdestinationpath: super::super::Foundation::PWSTR, wszdestinationfilename: super::super::Foundation::PWSTR, wszdestinationrangelist: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1089     #[cfg(not(feature = "Win32_Foundation"))] usize,
1090     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdirectedtarget: *mut u32) -> ::windows::runtime::HRESULT,
1091     #[cfg(feature = "Win32_Foundation")]
1092     pub  unsafe extern "system" fn(
1093         this: ::windows::runtime::RawPtr,
1094         idirectedtarget: u32,
1095         pbstrsourcepath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1096         pbstrsourcefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1097         pbstrsourcerangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1098         pbstrdestinationpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1099         pbstrdestinationfilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1100         pbstrdestinationrangelist: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1101     ) -> ::windows::runtime::HRESULT,
1102     #[cfg(not(feature = "Win32_Foundation"))] usize,
1103     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszrestoremetadata: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1104     #[cfg(not(feature = "Win32_Foundation"))] usize,
1105     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoremetadata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1106     #[cfg(not(feature = "Win32_Foundation"))] usize,
1107     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, target: VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
1108     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ptarget: *mut VSS_RESTORE_TARGET) -> ::windows::runtime::HRESULT,
1109     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszprerestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1110     #[cfg(not(feature = "Win32_Foundation"))] usize,
1111     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrprerestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1112     #[cfg(not(feature = "Win32_Foundation"))] usize,
1113     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpostrestorefailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1114     #[cfg(not(feature = "Win32_Foundation"))] usize,
1115     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpostrestorefailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1116     #[cfg(not(feature = "Win32_Foundation"))] usize,
1117     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszbackupstamp: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1118     #[cfg(not(feature = "Win32_Foundation"))] usize,
1119     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1120     #[cfg(not(feature = "Win32_Foundation"))] usize,
1121     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupstamp: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1122     #[cfg(not(feature = "Win32_Foundation"))] usize,
1123     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrbackupoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1124     #[cfg(not(feature = "Win32_Foundation"))] usize,
1125     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrrestoreoptions: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1126     #[cfg(not(feature = "Win32_Foundation"))] usize,
1127     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcrestoresubcomponent: *mut u32) -> ::windows::runtime::HRESULT,
1128     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icomponent: u32, pbstrlogicalpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrcomponentname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrepair: *mut bool) -> ::windows::runtime::HRESULT,
1129     #[cfg(not(feature = "Win32_Foundation"))] usize,
1130     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatus: *mut VSS_FILE_RESTORE_STATUS) -> ::windows::runtime::HRESULT,
1131     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, ftlastmodifytime: super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
1132     #[cfg(not(feature = "Win32_Foundation"))] usize,
1133     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: super::super::Foundation::BOOL, bstrlsnstring: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1134     #[cfg(not(feature = "Win32_Foundation"))] usize,
1135     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcdifferencedfiles: *mut u32) -> ::windows::runtime::HRESULT,
1136     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idifferencedfile: u32, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbstrfilespec: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pbrecursive: *mut super::super::Foundation::BOOL, pbstrlsnstring: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pftlastmodifytime: *mut super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
1137     #[cfg(not(feature = "Win32_Foundation"))] usize,
1138     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszfailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1139     #[cfg(not(feature = "Win32_Foundation"))] usize,
1140     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszfailuremsg: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1141     #[cfg(not(feature = "Win32_Foundation"))] usize,
1142     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrfailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1143     #[cfg(not(feature = "Win32_Foundation"))] usize,
1144     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrfailuremsg: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1145     #[cfg(not(feature = "Win32_Foundation"))] usize,
1146     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbauth: *mut bool) -> ::windows::runtime::HRESULT,
1147     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, prolltype: *mut VSS_ROLLFORWARD_TYPE, pbstrpoint: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1148     #[cfg(not(feature = "Win32_Foundation"))] usize,
1149     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1150     #[cfg(not(feature = "Win32_Foundation"))] usize,
1151     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: super::super::Foundation::PWSTR, dwreserved: u32) -> ::windows::runtime::HRESULT,
1152     #[cfg(not(feature = "Win32_Foundation"))] usize,
1153     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phr: *mut ::windows::runtime::HRESULT, phrapplication: *mut ::windows::runtime::HRESULT, pbstrapplicationmessage: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pdwreserved: *mut u32) -> ::windows::runtime::HRESULT,
1154     #[cfg(not(feature = "Win32_Foundation"))] usize,
1155 );
1156 #[repr(transparent)]
1157 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1158 pub struct IVssCreateExpressWriterMetadata(::windows::runtime::IUnknown);
1159 impl IVssCreateExpressWriterMetadata {
1160     #[cfg(feature = "Win32_Foundation")]
AddExcludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8) -> ::windows::runtime::Result<()>1161     pub unsafe fn AddExcludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8) -> ::windows::runtime::Result<()> {
1162         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(brecursive)).ok()
1163     }
1164     #[cfg(feature = "Win32_Foundation")]
AddComponent<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, ct: VSS_COMPONENT_TYPE, wszlogicalpath: Param1, wszcomponentname: Param2, wszcaption: Param3, pbicon: *const u8, cbicon: u32, brestoremetadata: u8, bnotifyonbackupcomplete: u8, bselectable: u8, bselectableforrestore: u8, dwcomponentflags: u32, ) -> ::windows::runtime::Result<()>1165     pub unsafe fn AddComponent<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1166         &self,
1167         ct: VSS_COMPONENT_TYPE,
1168         wszlogicalpath: Param1,
1169         wszcomponentname: Param2,
1170         wszcaption: Param3,
1171         pbicon: *const u8,
1172         cbicon: u32,
1173         brestoremetadata: u8,
1174         bnotifyonbackupcomplete: u8,
1175         bselectable: u8,
1176         bselectableforrestore: u8,
1177         dwcomponentflags: u32,
1178     ) -> ::windows::runtime::Result<()> {
1179         (::windows::runtime::Interface::vtable(self).4)(
1180             ::std::mem::transmute_copy(self),
1181             ::std::mem::transmute(ct),
1182             wszlogicalpath.into_param().abi(),
1183             wszcomponentname.into_param().abi(),
1184             wszcaption.into_param().abi(),
1185             ::std::mem::transmute(pbicon),
1186             ::std::mem::transmute(cbicon),
1187             ::std::mem::transmute(brestoremetadata),
1188             ::std::mem::transmute(bnotifyonbackupcomplete),
1189             ::std::mem::transmute(bselectable),
1190             ::std::mem::transmute(bselectableforrestore),
1191             ::std::mem::transmute(dwcomponentflags),
1192         )
1193         .ok()
1194     }
1195     #[cfg(feature = "Win32_Foundation")]
AddFilesToFileGroup<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszlogicalpath: Param0, wszgroupname: Param1, wszpath: Param2, wszfilespec: Param3, brecursive: u8, wszalternatelocation: Param5, dwbackuptypemask: u32, ) -> ::windows::runtime::Result<()>1196     pub unsafe fn AddFilesToFileGroup<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1197         &self,
1198         wszlogicalpath: Param0,
1199         wszgroupname: Param1,
1200         wszpath: Param2,
1201         wszfilespec: Param3,
1202         brecursive: u8,
1203         wszalternatelocation: Param5,
1204         dwbackuptypemask: u32,
1205     ) -> ::windows::runtime::Result<()> {
1206         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), wszlogicalpath.into_param().abi(), wszgroupname.into_param().abi(), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(brecursive), wszalternatelocation.into_param().abi(), ::std::mem::transmute(dwbackuptypemask)).ok()
1207     }
1208     #[cfg(feature = "Win32_Foundation")]
SetRestoreMethod<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, method: VSS_RESTOREMETHOD_ENUM, wszservice: Param1, wszuserprocedure: Param2, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::Result<()>1209     pub unsafe fn SetRestoreMethod<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, method: VSS_RESTOREMETHOD_ENUM, wszservice: Param1, wszuserprocedure: Param2, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::Result<()> {
1210         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(method), wszservice.into_param().abi(), wszuserprocedure.into_param().abi(), ::std::mem::transmute(writerrestore), ::std::mem::transmute(brebootrequired)).ok()
1211     }
1212     #[cfg(feature = "Win32_Foundation")]
AddComponentDependency<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszforlogicalpath: Param0, wszforcomponentname: Param1, onwriterid: Param2, wszonlogicalpath: Param3, wszoncomponentname: Param4, ) -> ::windows::runtime::Result<()>1213     pub unsafe fn AddComponentDependency<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1214         &self,
1215         wszforlogicalpath: Param0,
1216         wszforcomponentname: Param1,
1217         onwriterid: Param2,
1218         wszonlogicalpath: Param3,
1219         wszoncomponentname: Param4,
1220     ) -> ::windows::runtime::Result<()> {
1221         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), wszforlogicalpath.into_param().abi(), wszforcomponentname.into_param().abi(), onwriterid.into_param().abi(), wszonlogicalpath.into_param().abi(), wszoncomponentname.into_param().abi()).ok()
1222     }
SetBackupSchema(&self, dwschemamask: u32) -> ::windows::runtime::Result<()>1223     pub unsafe fn SetBackupSchema(&self, dwschemamask: u32) -> ::windows::runtime::Result<()> {
1224         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwschemamask)).ok()
1225     }
1226     #[cfg(feature = "Win32_Foundation")]
SaveAsXML(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>1227     pub unsafe fn SaveAsXML(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1228         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1229         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1230     }
1231 }
1232 unsafe impl ::windows::runtime::Interface for IVssCreateExpressWriterMetadata {
1233     type Vtable = IVssCreateExpressWriterMetadata_abi;
1234     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2625056375, 45678, 17023, [146, 221, 201, 150, 244, 30, 165, 227]);
1235 }
1236 impl ::std::convert::From<IVssCreateExpressWriterMetadata> for ::windows::runtime::IUnknown {
from(value: IVssCreateExpressWriterMetadata) -> Self1237     fn from(value: IVssCreateExpressWriterMetadata) -> Self {
1238         unsafe { ::std::mem::transmute(value) }
1239     }
1240 }
1241 impl ::std::convert::From<&IVssCreateExpressWriterMetadata> for ::windows::runtime::IUnknown {
from(value: &IVssCreateExpressWriterMetadata) -> Self1242     fn from(value: &IVssCreateExpressWriterMetadata) -> Self {
1243         ::std::convert::From::from(::std::clone::Clone::clone(value))
1244     }
1245 }
1246 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssCreateExpressWriterMetadata {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1247     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1248         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1249     }
1250 }
1251 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssCreateExpressWriterMetadata {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1252     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1253         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1254     }
1255 }
1256 #[repr(C)]
1257 #[doc(hidden)]
1258 pub struct IVssCreateExpressWriterMetadata_abi(
1259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1262     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: u8) -> ::windows::runtime::HRESULT,
1263     #[cfg(not(feature = "Win32_Foundation"))] usize,
1264     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ct: VSS_COMPONENT_TYPE, wszlogicalpath: super::super::Foundation::PWSTR, wszcomponentname: super::super::Foundation::PWSTR, wszcaption: super::super::Foundation::PWSTR, pbicon: *const u8, cbicon: u32, brestoremetadata: u8, bnotifyonbackupcomplete: u8, bselectable: u8, bselectableforrestore: u8, dwcomponentflags: u32) -> ::windows::runtime::HRESULT,
1265     #[cfg(not(feature = "Win32_Foundation"))] usize,
1266     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszlogicalpath: super::super::Foundation::PWSTR, wszgroupname: super::super::Foundation::PWSTR, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: u8, wszalternatelocation: super::super::Foundation::PWSTR, dwbackuptypemask: u32) -> ::windows::runtime::HRESULT,
1267     #[cfg(not(feature = "Win32_Foundation"))] usize,
1268     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, method: VSS_RESTOREMETHOD_ENUM, wszservice: super::super::Foundation::PWSTR, wszuserprocedure: super::super::Foundation::PWSTR, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::HRESULT,
1269     #[cfg(not(feature = "Win32_Foundation"))] usize,
1270     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszforlogicalpath: super::super::Foundation::PWSTR, wszforcomponentname: super::super::Foundation::PWSTR, onwriterid: ::windows::runtime::GUID, wszonlogicalpath: super::super::Foundation::PWSTR, wszoncomponentname: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1271     #[cfg(not(feature = "Win32_Foundation"))] usize,
1272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwschemamask: u32) -> ::windows::runtime::HRESULT,
1273     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrxml: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1274     #[cfg(not(feature = "Win32_Foundation"))] usize,
1275 );
1276 #[repr(transparent)]
1277 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1278 pub struct IVssCreateWriterMetadata(::windows::runtime::IUnknown);
1279 impl IVssCreateWriterMetadata {
1280     #[cfg(feature = "Win32_Foundation")]
AddIncludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8, wszalternatelocation: Param3) -> ::windows::runtime::Result<()>1281     pub unsafe fn AddIncludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8, wszalternatelocation: Param3) -> ::windows::runtime::Result<()> {
1282         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(brecursive), wszalternatelocation.into_param().abi()).ok()
1283     }
1284     #[cfg(feature = "Win32_Foundation")]
AddExcludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8) -> ::windows::runtime::Result<()>1285     pub unsafe fn AddExcludeFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0, wszfilespec: Param1, brecursive: u8) -> ::windows::runtime::Result<()> {
1286         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(brecursive)).ok()
1287     }
1288     #[cfg(feature = "Win32_Foundation")]
AddComponent<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, ct: VSS_COMPONENT_TYPE, wszlogicalpath: Param1, wszcomponentname: Param2, wszcaption: Param3, pbicon: *const u8, cbicon: u32, brestoremetadata: u8, bnotifyonbackupcomplete: u8, bselectable: u8, bselectableforrestore: u8, dwcomponentflags: u32, ) -> ::windows::runtime::Result<()>1289     pub unsafe fn AddComponent<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1290         &self,
1291         ct: VSS_COMPONENT_TYPE,
1292         wszlogicalpath: Param1,
1293         wszcomponentname: Param2,
1294         wszcaption: Param3,
1295         pbicon: *const u8,
1296         cbicon: u32,
1297         brestoremetadata: u8,
1298         bnotifyonbackupcomplete: u8,
1299         bselectable: u8,
1300         bselectableforrestore: u8,
1301         dwcomponentflags: u32,
1302     ) -> ::windows::runtime::Result<()> {
1303         (::windows::runtime::Interface::vtable(self).5)(
1304             ::std::mem::transmute_copy(self),
1305             ::std::mem::transmute(ct),
1306             wszlogicalpath.into_param().abi(),
1307             wszcomponentname.into_param().abi(),
1308             wszcaption.into_param().abi(),
1309             ::std::mem::transmute(pbicon),
1310             ::std::mem::transmute(cbicon),
1311             ::std::mem::transmute(brestoremetadata),
1312             ::std::mem::transmute(bnotifyonbackupcomplete),
1313             ::std::mem::transmute(bselectable),
1314             ::std::mem::transmute(bselectableforrestore),
1315             ::std::mem::transmute(dwcomponentflags),
1316         )
1317         .ok()
1318     }
1319     #[cfg(feature = "Win32_Foundation")]
AddDatabaseFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszlogicalpath: Param0, wszdatabasename: Param1, wszpath: Param2, wszfilespec: Param3, dwbackuptypemask: u32) -> ::windows::runtime::Result<()>1320     pub unsafe fn AddDatabaseFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszlogicalpath: Param0, wszdatabasename: Param1, wszpath: Param2, wszfilespec: Param3, dwbackuptypemask: u32) -> ::windows::runtime::Result<()> {
1321         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), wszlogicalpath.into_param().abi(), wszdatabasename.into_param().abi(), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(dwbackuptypemask)).ok()
1322     }
1323     #[cfg(feature = "Win32_Foundation")]
AddDatabaseLogFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszlogicalpath: Param0, wszdatabasename: Param1, wszpath: Param2, wszfilespec: Param3, dwbackuptypemask: u32) -> ::windows::runtime::Result<()>1324     pub unsafe fn AddDatabaseLogFiles<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszlogicalpath: Param0, wszdatabasename: Param1, wszpath: Param2, wszfilespec: Param3, dwbackuptypemask: u32) -> ::windows::runtime::Result<()> {
1325         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), wszlogicalpath.into_param().abi(), wszdatabasename.into_param().abi(), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(dwbackuptypemask)).ok()
1326     }
1327     #[cfg(feature = "Win32_Foundation")]
AddFilesToFileGroup<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszlogicalpath: Param0, wszgroupname: Param1, wszpath: Param2, wszfilespec: Param3, brecursive: u8, wszalternatelocation: Param5, dwbackuptypemask: u32, ) -> ::windows::runtime::Result<()>1328     pub unsafe fn AddFilesToFileGroup<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1329         &self,
1330         wszlogicalpath: Param0,
1331         wszgroupname: Param1,
1332         wszpath: Param2,
1333         wszfilespec: Param3,
1334         brecursive: u8,
1335         wszalternatelocation: Param5,
1336         dwbackuptypemask: u32,
1337     ) -> ::windows::runtime::Result<()> {
1338         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), wszlogicalpath.into_param().abi(), wszgroupname.into_param().abi(), wszpath.into_param().abi(), wszfilespec.into_param().abi(), ::std::mem::transmute(brecursive), wszalternatelocation.into_param().abi(), ::std::mem::transmute(dwbackuptypemask)).ok()
1339     }
1340     #[cfg(feature = "Win32_Foundation")]
SetRestoreMethod<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, method: VSS_RESTOREMETHOD_ENUM, wszservice: Param1, wszuserprocedure: Param2, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::Result<()>1341     pub unsafe fn SetRestoreMethod<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, method: VSS_RESTOREMETHOD_ENUM, wszservice: Param1, wszuserprocedure: Param2, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::Result<()> {
1342         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(method), wszservice.into_param().abi(), wszuserprocedure.into_param().abi(), ::std::mem::transmute(writerrestore), ::std::mem::transmute(brebootrequired)).ok()
1343     }
1344     #[cfg(feature = "Win32_Foundation")]
AddAlternateLocationMapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszsourcepath: Param0, wszsourcefilespec: Param1, brecursive: u8, wszdestination: Param3) -> ::windows::runtime::Result<()>1345     pub unsafe fn AddAlternateLocationMapping<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszsourcepath: Param0, wszsourcefilespec: Param1, brecursive: u8, wszdestination: Param3) -> ::windows::runtime::Result<()> {
1346         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), wszsourcepath.into_param().abi(), wszsourcefilespec.into_param().abi(), ::std::mem::transmute(brecursive), wszdestination.into_param().abi()).ok()
1347     }
1348     #[cfg(feature = "Win32_Foundation")]
AddComponentDependency<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, wszforlogicalpath: Param0, wszforcomponentname: Param1, onwriterid: Param2, wszonlogicalpath: Param3, wszoncomponentname: Param4, ) -> ::windows::runtime::Result<()>1349     pub unsafe fn AddComponentDependency<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
1350         &self,
1351         wszforlogicalpath: Param0,
1352         wszforcomponentname: Param1,
1353         onwriterid: Param2,
1354         wszonlogicalpath: Param3,
1355         wszoncomponentname: Param4,
1356     ) -> ::windows::runtime::Result<()> {
1357         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), wszforlogicalpath.into_param().abi(), wszforcomponentname.into_param().abi(), onwriterid.into_param().abi(), wszonlogicalpath.into_param().abi(), wszoncomponentname.into_param().abi()).ok()
1358     }
SetBackupSchema(&self, dwschemamask: u32) -> ::windows::runtime::Result<()>1359     pub unsafe fn SetBackupSchema(&self, dwschemamask: u32) -> ::windows::runtime::Result<()> {
1360         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwschemamask)).ok()
1361     }
1362     #[cfg(feature = "Win32_Data_Xml_MsXml")]
GetDocument(&self) -> ::windows::runtime::Result<super::super::Data::Xml::MsXml::IXMLDOMDocument>1363     pub unsafe fn GetDocument(&self) -> ::windows::runtime::Result<super::super::Data::Xml::MsXml::IXMLDOMDocument> {
1364         let mut result__: <super::super::Data::Xml::MsXml::IXMLDOMDocument as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1365         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Data::Xml::MsXml::IXMLDOMDocument>(result__)
1366     }
1367     #[cfg(feature = "Win32_Foundation")]
SaveAsXML(&self, pbstrxml: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>1368     pub unsafe fn SaveAsXML(&self, pbstrxml: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
1369         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrxml)).ok()
1370     }
1371 }
1372 unsafe impl ::windows::runtime::Interface for IVssCreateWriterMetadata {
1373     type Vtable = IVssCreateWriterMetadata_abi;
1374     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::zeroed();
1375 }
1376 impl ::std::convert::From<IVssCreateWriterMetadata> for ::windows::runtime::IUnknown {
from(value: IVssCreateWriterMetadata) -> Self1377     fn from(value: IVssCreateWriterMetadata) -> Self {
1378         unsafe { ::std::mem::transmute(value) }
1379     }
1380 }
1381 impl ::std::convert::From<&IVssCreateWriterMetadata> for ::windows::runtime::IUnknown {
from(value: &IVssCreateWriterMetadata) -> Self1382     fn from(value: &IVssCreateWriterMetadata) -> Self {
1383         ::std::convert::From::from(::std::clone::Clone::clone(value))
1384     }
1385 }
1386 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssCreateWriterMetadata {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1387     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1388         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1389     }
1390 }
1391 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssCreateWriterMetadata {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1392     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1393         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1394     }
1395 }
1396 #[repr(C)]
1397 #[doc(hidden)]
1398 pub struct IVssCreateWriterMetadata_abi(
1399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1400     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1401     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1402     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: u8, wszalternatelocation: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1403     #[cfg(not(feature = "Win32_Foundation"))] usize,
1404     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: u8) -> ::windows::runtime::HRESULT,
1405     #[cfg(not(feature = "Win32_Foundation"))] usize,
1406     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ct: VSS_COMPONENT_TYPE, wszlogicalpath: super::super::Foundation::PWSTR, wszcomponentname: super::super::Foundation::PWSTR, wszcaption: super::super::Foundation::PWSTR, pbicon: *const u8, cbicon: u32, brestoremetadata: u8, bnotifyonbackupcomplete: u8, bselectable: u8, bselectableforrestore: u8, dwcomponentflags: u32) -> ::windows::runtime::HRESULT,
1407     #[cfg(not(feature = "Win32_Foundation"))] usize,
1408     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszlogicalpath: super::super::Foundation::PWSTR, wszdatabasename: super::super::Foundation::PWSTR, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, dwbackuptypemask: u32) -> ::windows::runtime::HRESULT,
1409     #[cfg(not(feature = "Win32_Foundation"))] usize,
1410     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszlogicalpath: super::super::Foundation::PWSTR, wszdatabasename: super::super::Foundation::PWSTR, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, dwbackuptypemask: u32) -> ::windows::runtime::HRESULT,
1411     #[cfg(not(feature = "Win32_Foundation"))] usize,
1412     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszlogicalpath: super::super::Foundation::PWSTR, wszgroupname: super::super::Foundation::PWSTR, wszpath: super::super::Foundation::PWSTR, wszfilespec: super::super::Foundation::PWSTR, brecursive: u8, wszalternatelocation: super::super::Foundation::PWSTR, dwbackuptypemask: u32) -> ::windows::runtime::HRESULT,
1413     #[cfg(not(feature = "Win32_Foundation"))] usize,
1414     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, method: VSS_RESTOREMETHOD_ENUM, wszservice: super::super::Foundation::PWSTR, wszuserprocedure: super::super::Foundation::PWSTR, writerrestore: VSS_WRITERRESTORE_ENUM, brebootrequired: u8) -> ::windows::runtime::HRESULT,
1415     #[cfg(not(feature = "Win32_Foundation"))] usize,
1416     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszsourcepath: super::super::Foundation::PWSTR, wszsourcefilespec: super::super::Foundation::PWSTR, brecursive: u8, wszdestination: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1417     #[cfg(not(feature = "Win32_Foundation"))] usize,
1418     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszforlogicalpath: super::super::Foundation::PWSTR, wszforcomponentname: super::super::Foundation::PWSTR, onwriterid: ::windows::runtime::GUID, wszonlogicalpath: super::super::Foundation::PWSTR, wszoncomponentname: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
1419     #[cfg(not(feature = "Win32_Foundation"))] usize,
1420     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwschemamask: u32) -> ::windows::runtime::HRESULT,
1421     #[cfg(feature = "Win32_Data_Xml_MsXml")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdoc: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1422     #[cfg(not(feature = "Win32_Data_Xml_MsXml"))] usize,
1423     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrxml: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1424     #[cfg(not(feature = "Win32_Foundation"))] usize,
1425 );
1426 #[repr(transparent)]
1427 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1428 pub struct IVssDifferentialSoftwareSnapshotMgmt(::windows::runtime::IUnknown);
1429 impl IVssDifferentialSoftwareSnapshotMgmt {
AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1430     pub unsafe fn AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1431         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1432     }
ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1433     pub unsafe fn ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1434         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1435     }
QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1436     pub unsafe fn QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1437         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1438         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszoriginalvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1439     }
QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1440     pub unsafe fn QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1441         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1442         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1443     }
QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1444     pub unsafe fn QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1445         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1446         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1447     }
QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject>1448     pub unsafe fn QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1449         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1450         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1451     }
1452 }
1453 unsafe impl ::windows::runtime::Interface for IVssDifferentialSoftwareSnapshotMgmt {
1454     type Vtable = IVssDifferentialSoftwareSnapshotMgmt_abi;
1455     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(558501672, 46903, 16422, [184, 71, 79, 158, 55, 215, 149, 41]);
1456 }
1457 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt> for ::windows::runtime::IUnknown {
from(value: IVssDifferentialSoftwareSnapshotMgmt) -> Self1458     fn from(value: IVssDifferentialSoftwareSnapshotMgmt) -> Self {
1459         unsafe { ::std::mem::transmute(value) }
1460     }
1461 }
1462 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt> for ::windows::runtime::IUnknown {
from(value: &IVssDifferentialSoftwareSnapshotMgmt) -> Self1463     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt) -> Self {
1464         ::std::convert::From::from(::std::clone::Clone::clone(value))
1465     }
1466 }
1467 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssDifferentialSoftwareSnapshotMgmt {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1468     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1469         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1470     }
1471 }
1472 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssDifferentialSoftwareSnapshotMgmt {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1473     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1474         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1475     }
1476 }
1477 #[repr(C)]
1478 #[doc(hidden)]
1479 pub struct IVssDifferentialSoftwareSnapshotMgmt_abi(
1480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1481     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1482     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1483     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1484     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1485     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszoriginalvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1486     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1487     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1488     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1489 );
1490 #[repr(transparent)]
1491 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1492 pub struct IVssDifferentialSoftwareSnapshotMgmt2(::windows::runtime::IUnknown);
1493 impl IVssDifferentialSoftwareSnapshotMgmt2 {
AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1494     pub unsafe fn AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1495         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1496     }
ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1497     pub unsafe fn ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1498         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1499     }
QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1500     pub unsafe fn QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1501         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1502         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszoriginalvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1503     }
QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1504     pub unsafe fn QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1505         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1506         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1507     }
QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1508     pub unsafe fn QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1509         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1510         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1511     }
QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject>1512     pub unsafe fn QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1513         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1514         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1515     }
1516     #[cfg(feature = "Win32_Foundation")]
ChangeDiffAreaMaximumSizeEx<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: Param3) -> ::windows::runtime::Result<()>1517     pub unsafe fn ChangeDiffAreaMaximumSizeEx<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: Param3) -> ::windows::runtime::Result<()> {
1518         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace), bvolatile.into_param().abi()).ok()
1519     }
MigrateDiffAreas(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::Result<()>1520     pub unsafe fn MigrateDiffAreas(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::Result<()> {
1521         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(pwsznewdiffareavolumename)).ok()
1522     }
QueryMigrationStatus(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<IVssAsync>1523     pub unsafe fn QueryMigrationStatus(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<IVssAsync> {
1524         let mut result__: <IVssAsync as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1525         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), &mut result__).from_abi::<IVssAsync>(result__)
1526     }
SetSnapshotPriority<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshot: Param0, priority: u8) -> ::windows::runtime::Result<()>1527     pub unsafe fn SetSnapshotPriority<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshot: Param0, priority: u8) -> ::windows::runtime::Result<()> {
1528         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), idsnapshot.into_param().abi(), ::std::mem::transmute(priority)).ok()
1529     }
1530 }
1531 unsafe impl ::windows::runtime::Interface for IVssDifferentialSoftwareSnapshotMgmt2 {
1532     type Vtable = IVssDifferentialSoftwareSnapshotMgmt2_abi;
1533     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2493346643, 26463, 17013, [137, 105, 240, 68, 198, 39, 120, 21]);
1534 }
1535 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt2> for ::windows::runtime::IUnknown {
from(value: IVssDifferentialSoftwareSnapshotMgmt2) -> Self1536     fn from(value: IVssDifferentialSoftwareSnapshotMgmt2) -> Self {
1537         unsafe { ::std::mem::transmute(value) }
1538     }
1539 }
1540 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt2> for ::windows::runtime::IUnknown {
from(value: &IVssDifferentialSoftwareSnapshotMgmt2) -> Self1541     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt2) -> Self {
1542         ::std::convert::From::from(::std::clone::Clone::clone(value))
1543     }
1544 }
1545 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssDifferentialSoftwareSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1546     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1547         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1548     }
1549 }
1550 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssDifferentialSoftwareSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1551     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1552         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1553     }
1554 }
1555 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt2> for IVssDifferentialSoftwareSnapshotMgmt {
from(value: IVssDifferentialSoftwareSnapshotMgmt2) -> Self1556     fn from(value: IVssDifferentialSoftwareSnapshotMgmt2) -> Self {
1557         unsafe { ::std::mem::transmute(value) }
1558     }
1559 }
1560 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt2> for IVssDifferentialSoftwareSnapshotMgmt {
from(value: &IVssDifferentialSoftwareSnapshotMgmt2) -> Self1561     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt2) -> Self {
1562         ::std::convert::From::from(::std::clone::Clone::clone(value))
1563     }
1564 }
1565 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt> for IVssDifferentialSoftwareSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt>1566     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt> {
1567         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt>::into(self))
1568     }
1569 }
1570 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt> for &IVssDifferentialSoftwareSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt>1571     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt> {
1572         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt>::into(::std::clone::Clone::clone(self)))
1573     }
1574 }
1575 #[repr(C)]
1576 #[doc(hidden)]
1577 pub struct IVssDifferentialSoftwareSnapshotMgmt2_abi(
1578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1580     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1581     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszoriginalvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1584     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1585     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1586     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1587     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1588     #[cfg(not(feature = "Win32_Foundation"))] usize,
1589     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::HRESULT,
1590     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, ppasync: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1591     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idsnapshot: ::windows::runtime::GUID, priority: u8) -> ::windows::runtime::HRESULT,
1592 );
1593 #[repr(transparent)]
1594 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1595 pub struct IVssDifferentialSoftwareSnapshotMgmt3(::windows::runtime::IUnknown);
1596 impl IVssDifferentialSoftwareSnapshotMgmt3 {
AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1597     pub unsafe fn AddDiffArea(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1598         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1599     }
ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()>1600     pub unsafe fn ChangeDiffAreaMaximumSize(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::Result<()> {
1601         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace)).ok()
1602     }
QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1603     pub unsafe fn QueryVolumesSupportedForDiffAreas(&self, pwszoriginalvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1604         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1605         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszoriginalvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1606     }
QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1607     pub unsafe fn QueryDiffAreasForVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1608         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1609         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1610     }
QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject>1611     pub unsafe fn QueryDiffAreasOnVolume(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1612         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1613         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1614     }
QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject>1615     pub unsafe fn QueryDiffAreasForSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
1616         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1617         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
1618     }
1619     #[cfg(feature = "Win32_Foundation")]
ChangeDiffAreaMaximumSizeEx<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: Param3) -> ::windows::runtime::Result<()>1620     pub unsafe fn ChangeDiffAreaMaximumSizeEx<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: Param3) -> ::windows::runtime::Result<()> {
1621         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(llmaximumdiffspace), bvolatile.into_param().abi()).ok()
1622     }
MigrateDiffAreas(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::Result<()>1623     pub unsafe fn MigrateDiffAreas(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::Result<()> {
1624         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), ::std::mem::transmute(pwsznewdiffareavolumename)).ok()
1625     }
QueryMigrationStatus(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<IVssAsync>1626     pub unsafe fn QueryMigrationStatus(&self, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<IVssAsync> {
1627         let mut result__: <IVssAsync as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1628         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pwszdiffareavolumename), &mut result__).from_abi::<IVssAsync>(result__)
1629     }
SetSnapshotPriority<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshot: Param0, priority: u8) -> ::windows::runtime::Result<()>1630     pub unsafe fn SetSnapshotPriority<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshot: Param0, priority: u8) -> ::windows::runtime::Result<()> {
1631         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), idsnapshot.into_param().abi(), ::std::mem::transmute(priority)).ok()
1632     }
SetVolumeProtectLevel(&self, pwszvolumename: *const u16, protectionlevel: VSS_PROTECTION_LEVEL) -> ::windows::runtime::Result<()>1633     pub unsafe fn SetVolumeProtectLevel(&self, pwszvolumename: *const u16, protectionlevel: VSS_PROTECTION_LEVEL) -> ::windows::runtime::Result<()> {
1634         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(protectionlevel)).ok()
1635     }
1636     #[cfg(feature = "Win32_Foundation")]
GetVolumeProtectLevel(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<VSS_VOLUME_PROTECTION_INFO>1637     pub unsafe fn GetVolumeProtectLevel(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<VSS_VOLUME_PROTECTION_INFO> {
1638         let mut result__: <VSS_VOLUME_PROTECTION_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1639         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<VSS_VOLUME_PROTECTION_INFO>(result__)
1640     }
ClearVolumeProtectFault(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<()>1641     pub unsafe fn ClearVolumeProtectFault(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<()> {
1642         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename)).ok()
1643     }
DeleteUnusedDiffAreas(&self, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<()>1644     pub unsafe fn DeleteUnusedDiffAreas(&self, pwszdiffareavolumename: *const u16) -> ::windows::runtime::Result<()> {
1645         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszdiffareavolumename)).ok()
1646     }
QuerySnapshotDeltaBitmap<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshotolder: Param0, idsnapshotyounger: Param1, pcblocksizeperbit: *mut u32, pcbitmaplength: *mut u32, ppbbitmap: *mut *mut u8) -> ::windows::runtime::Result<()>1647     pub unsafe fn QuerySnapshotDeltaBitmap<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idsnapshotolder: Param0, idsnapshotyounger: Param1, pcblocksizeperbit: *mut u32, pcbitmaplength: *mut u32, ppbbitmap: *mut *mut u8) -> ::windows::runtime::Result<()> {
1648         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), idsnapshotolder.into_param().abi(), idsnapshotyounger.into_param().abi(), ::std::mem::transmute(pcblocksizeperbit), ::std::mem::transmute(pcbitmaplength), ::std::mem::transmute(ppbbitmap)).ok()
1649     }
1650 }
1651 unsafe impl ::windows::runtime::Interface for IVssDifferentialSoftwareSnapshotMgmt3 {
1652     type Vtable = IVssDifferentialSoftwareSnapshotMgmt3_abi;
1653     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(943685233, 42181, 16415, [178, 127, 248, 38, 40, 159, 132, 88]);
1654 }
1655 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt3> for ::windows::runtime::IUnknown {
from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self1656     fn from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1657         unsafe { ::std::mem::transmute(value) }
1658     }
1659 }
1660 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt3> for ::windows::runtime::IUnknown {
from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self1661     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1662         ::std::convert::From::from(::std::clone::Clone::clone(value))
1663     }
1664 }
1665 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1666     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1667         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1668     }
1669 }
1670 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1671     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1672         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1673     }
1674 }
1675 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt3> for IVssDifferentialSoftwareSnapshotMgmt2 {
from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self1676     fn from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1677         unsafe { ::std::mem::transmute(value) }
1678     }
1679 }
1680 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt3> for IVssDifferentialSoftwareSnapshotMgmt2 {
from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self1681     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1682         ::std::convert::From::from(::std::clone::Clone::clone(value))
1683     }
1684 }
1685 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt2> for IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt2>1686     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt2> {
1687         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt2>::into(self))
1688     }
1689 }
1690 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt2> for &IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt2>1691     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt2> {
1692         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt2>::into(::std::clone::Clone::clone(self)))
1693     }
1694 }
1695 impl ::std::convert::From<IVssDifferentialSoftwareSnapshotMgmt3> for IVssDifferentialSoftwareSnapshotMgmt {
from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self1696     fn from(value: IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1697         unsafe { ::std::mem::transmute(value) }
1698     }
1699 }
1700 impl ::std::convert::From<&IVssDifferentialSoftwareSnapshotMgmt3> for IVssDifferentialSoftwareSnapshotMgmt {
from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self1701     fn from(value: &IVssDifferentialSoftwareSnapshotMgmt3) -> Self {
1702         ::std::convert::From::from(::std::clone::Clone::clone(value))
1703     }
1704 }
1705 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt> for IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt>1706     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt> {
1707         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt>::into(self))
1708     }
1709 }
1710 impl<'a> ::windows::runtime::IntoParam<'a, IVssDifferentialSoftwareSnapshotMgmt> for &IVssDifferentialSoftwareSnapshotMgmt3 {
into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt>1711     fn into_param(self) -> ::windows::runtime::Param<'a, IVssDifferentialSoftwareSnapshotMgmt> {
1712         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssDifferentialSoftwareSnapshotMgmt>::into(::std::clone::Clone::clone(self)))
1713     }
1714 }
1715 #[repr(C)]
1716 #[doc(hidden)]
1717 pub struct IVssDifferentialSoftwareSnapshotMgmt3_abi(
1718     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1719     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1720     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1721     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64) -> ::windows::runtime::HRESULT,
1723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszoriginalvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1727     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, llmaximumdiffspace: i64, bvolatile: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1728     #[cfg(not(feature = "Win32_Foundation"))] usize,
1729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, pwsznewdiffareavolumename: *const u16) -> ::windows::runtime::HRESULT,
1730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pwszdiffareavolumename: *const u16, ppasync: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1731     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idsnapshot: ::windows::runtime::GUID, priority: u8) -> ::windows::runtime::HRESULT,
1732     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, protectionlevel: VSS_PROTECTION_LEVEL) -> ::windows::runtime::HRESULT,
1733     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, protectionlevel: *mut VSS_VOLUME_PROTECTION_INFO) -> ::windows::runtime::HRESULT,
1734     #[cfg(not(feature = "Win32_Foundation"))] usize,
1735     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16) -> ::windows::runtime::HRESULT,
1736     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszdiffareavolumename: *const u16) -> ::windows::runtime::HRESULT,
1737     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idsnapshotolder: ::windows::runtime::GUID, idsnapshotyounger: ::windows::runtime::GUID, pcblocksizeperbit: *mut u32, pcbitmaplength: *mut u32, ppbbitmap: *mut *mut u8) -> ::windows::runtime::HRESULT,
1738 );
1739 #[repr(transparent)]
1740 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1741 pub struct IVssEnumMgmtObject(::windows::runtime::IUnknown);
1742 impl IVssEnumMgmtObject {
Next(&self, celt: u32, rgelt: *mut VSS_MGMT_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::Result<()>1743     pub unsafe fn Next(&self, celt: u32, rgelt: *mut VSS_MGMT_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
1744         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
1745     }
Skip(&self, celt: u32) -> ::windows::runtime::Result<()>1746     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
1747         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
1748     }
Reset(&self) -> ::windows::runtime::Result<()>1749     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
1750         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
1751     }
Clone(&self, ppenum: *mut ::std::option::Option<IVssEnumMgmtObject>) -> ::windows::runtime::Result<()>1752     pub unsafe fn Clone(&self, ppenum: *mut ::std::option::Option<IVssEnumMgmtObject>) -> ::windows::runtime::Result<()> {
1753         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppenum)).ok()
1754     }
1755 }
1756 unsafe impl ::windows::runtime::Interface for IVssEnumMgmtObject {
1757     type Vtable = IVssEnumMgmtObject_abi;
1758     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(26562155, 37460, 20078, [128, 140, 201, 224, 93, 0, 118, 150]);
1759 }
1760 impl ::std::convert::From<IVssEnumMgmtObject> for ::windows::runtime::IUnknown {
from(value: IVssEnumMgmtObject) -> Self1761     fn from(value: IVssEnumMgmtObject) -> Self {
1762         unsafe { ::std::mem::transmute(value) }
1763     }
1764 }
1765 impl ::std::convert::From<&IVssEnumMgmtObject> for ::windows::runtime::IUnknown {
from(value: &IVssEnumMgmtObject) -> Self1766     fn from(value: &IVssEnumMgmtObject) -> Self {
1767         ::std::convert::From::from(::std::clone::Clone::clone(value))
1768     }
1769 }
1770 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssEnumMgmtObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1771     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1772         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1773     }
1774 }
1775 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssEnumMgmtObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1776     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1777         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1778     }
1779 }
1780 #[repr(C)]
1781 #[doc(hidden)]
1782 pub struct IVssEnumMgmtObject_abi(
1783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut VSS_MGMT_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
1787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
1788     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1789     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1790 );
1791 #[repr(transparent)]
1792 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1793 pub struct IVssEnumObject(::windows::runtime::IUnknown);
1794 impl IVssEnumObject {
Next(&self, celt: u32, rgelt: *mut VSS_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::Result<()>1795     pub unsafe fn Next(&self, celt: u32, rgelt: *mut VSS_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
1796         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
1797     }
Skip(&self, celt: u32) -> ::windows::runtime::Result<()>1798     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
1799         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
1800     }
Reset(&self) -> ::windows::runtime::Result<()>1801     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
1802         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
1803     }
Clone(&self, ppenum: *mut ::std::option::Option<IVssEnumObject>) -> ::windows::runtime::Result<()>1804     pub unsafe fn Clone(&self, ppenum: *mut ::std::option::Option<IVssEnumObject>) -> ::windows::runtime::Result<()> {
1805         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(ppenum)).ok()
1806     }
1807 }
1808 unsafe impl ::windows::runtime::Interface for IVssEnumObject {
1809     type Vtable = IVssEnumObject_abi;
1810     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2921099536, 12128, 4563, [138, 57, 0, 192, 79, 114, 216, 227]);
1811 }
1812 impl ::std::convert::From<IVssEnumObject> for ::windows::runtime::IUnknown {
from(value: IVssEnumObject) -> Self1813     fn from(value: IVssEnumObject) -> Self {
1814         unsafe { ::std::mem::transmute(value) }
1815     }
1816 }
1817 impl ::std::convert::From<&IVssEnumObject> for ::windows::runtime::IUnknown {
from(value: &IVssEnumObject) -> Self1818     fn from(value: &IVssEnumObject) -> Self {
1819         ::std::convert::From::from(::std::clone::Clone::clone(value))
1820     }
1821 }
1822 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssEnumObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1823     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1824         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1825     }
1826 }
1827 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssEnumObject {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1828     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1829         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1830     }
1831 }
1832 #[repr(C)]
1833 #[doc(hidden)]
1834 pub struct IVssEnumObject_abi(
1835     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1836     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1837     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1838     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut VSS_OBJECT_PROP, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
1839     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
1840     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1841     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1842 );
1843 #[repr(C)]
1844 #[derive(:: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug, :: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy)]
1845 pub struct IVssExamineWriterMetadata(pub u8);
1846 #[repr(transparent)]
1847 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1848 pub struct IVssExpressWriter(::windows::runtime::IUnknown);
1849 impl IVssExpressWriter {
1850     #[cfg(feature = "Win32_Foundation")]
CreateMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, writerid: Param0, writername: Param1, usagetype: VSS_USAGE_TYPE, versionmajor: u32, versionminor: u32, reserved: u32) -> ::windows::runtime::Result<IVssCreateExpressWriterMetadata>1851     pub unsafe fn CreateMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, writerid: Param0, writername: Param1, usagetype: VSS_USAGE_TYPE, versionmajor: u32, versionminor: u32, reserved: u32) -> ::windows::runtime::Result<IVssCreateExpressWriterMetadata> {
1852         let mut result__: <IVssCreateExpressWriterMetadata as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1853         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), writerid.into_param().abi(), writername.into_param().abi(), ::std::mem::transmute(usagetype), ::std::mem::transmute(versionmajor), ::std::mem::transmute(versionminor), ::std::mem::transmute(reserved), &mut result__).from_abi::<IVssCreateExpressWriterMetadata>(result__)
1854     }
1855     #[cfg(feature = "Win32_Foundation")]
LoadMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, metadata: Param0, reserved: u32) -> ::windows::runtime::Result<()>1856     pub unsafe fn LoadMetadata<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, metadata: Param0, reserved: u32) -> ::windows::runtime::Result<()> {
1857         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), metadata.into_param().abi(), ::std::mem::transmute(reserved)).ok()
1858     }
Register(&self) -> ::windows::runtime::Result<()>1859     pub unsafe fn Register(&self) -> ::windows::runtime::Result<()> {
1860         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
1861     }
Unregister<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, writerid: Param0) -> ::windows::runtime::Result<()>1862     pub unsafe fn Unregister<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, writerid: Param0) -> ::windows::runtime::Result<()> {
1863         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), writerid.into_param().abi()).ok()
1864     }
1865 }
1866 unsafe impl ::windows::runtime::Interface for IVssExpressWriter {
1867     type Vtable = IVssExpressWriter_abi;
1868     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3812294620, 22983, 18353, [151, 213, 66, 102, 89, 143, 98, 53]);
1869 }
1870 impl ::std::convert::From<IVssExpressWriter> for ::windows::runtime::IUnknown {
from(value: IVssExpressWriter) -> Self1871     fn from(value: IVssExpressWriter) -> Self {
1872         unsafe { ::std::mem::transmute(value) }
1873     }
1874 }
1875 impl ::std::convert::From<&IVssExpressWriter> for ::windows::runtime::IUnknown {
from(value: &IVssExpressWriter) -> Self1876     fn from(value: &IVssExpressWriter) -> Self {
1877         ::std::convert::From::from(::std::clone::Clone::clone(value))
1878     }
1879 }
1880 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssExpressWriter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1881     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1882         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1883     }
1884 }
1885 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssExpressWriter {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1886     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1887         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1888     }
1889 }
1890 #[repr(C)]
1891 #[doc(hidden)]
1892 pub struct IVssExpressWriter_abi(
1893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1894     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1895     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1896     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, writerid: ::windows::runtime::GUID, writername: super::super::Foundation::PWSTR, usagetype: VSS_USAGE_TYPE, versionmajor: u32, versionminor: u32, reserved: u32, ppmetadata: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1897     #[cfg(not(feature = "Win32_Foundation"))] usize,
1898     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, metadata: super::super::Foundation::PWSTR, reserved: u32) -> ::windows::runtime::HRESULT,
1899     #[cfg(not(feature = "Win32_Foundation"))] usize,
1900     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1901     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, writerid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1902 );
1903 #[repr(transparent)]
1904 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1905 pub struct IVssFileShareSnapshotProvider(::windows::runtime::IUnknown);
1906 impl IVssFileShareSnapshotProvider {
SetContext(&self, lcontext: i32) -> ::windows::runtime::Result<()>1907     pub unsafe fn SetContext(&self, lcontext: i32) -> ::windows::runtime::Result<()> {
1908         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lcontext)).ok()
1909     }
GetSnapshotProperties<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<VSS_SNAPSHOT_PROP>1910     pub unsafe fn GetSnapshotProperties<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<VSS_SNAPSHOT_PROP> {
1911         let mut result__: <VSS_SNAPSHOT_PROP as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1912         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), &mut result__).from_abi::<VSS_SNAPSHOT_PROP>(result__)
1913     }
Query<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, queriedobjectid: Param0, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE) -> ::windows::runtime::Result<IVssEnumObject>1914     pub unsafe fn Query<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, queriedobjectid: Param0, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE) -> ::windows::runtime::Result<IVssEnumObject> {
1915         let mut result__: <IVssEnumObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1916         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), queriedobjectid.into_param().abi(), ::std::mem::transmute(equeriedobjecttype), ::std::mem::transmute(ereturnedobjectstype), &mut result__).from_abi::<IVssEnumObject>(result__)
1917     }
1918     #[cfg(feature = "Win32_Foundation")]
DeleteSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, sourceobjectid: Param0, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: Param2, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()>1919     pub unsafe fn DeleteSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, sourceobjectid: Param0, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: Param2, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
1920         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), sourceobjectid.into_param().abi(), ::std::mem::transmute(esourceobjecttype), bforcedelete.into_param().abi(), ::std::mem::transmute(pldeletedsnapshots), ::std::mem::transmute(pnondeletedsnapshotid)).ok()
1921     }
BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, pwszsharepath: *const u16, lnewcontext: i32, providerid: Param4) -> ::windows::runtime::Result<()>1922     pub unsafe fn BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, pwszsharepath: *const u16, lnewcontext: i32, providerid: Param4) -> ::windows::runtime::Result<()> {
1923         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi(), snapshotid.into_param().abi(), ::std::mem::transmute(pwszsharepath), ::std::mem::transmute(lnewcontext), providerid.into_param().abi()).ok()
1924     }
1925     #[cfg(feature = "Win32_Foundation")]
IsPathSupported(&self, pwszsharepath: *const u16) -> ::windows::runtime::Result<super::super::Foundation::BOOL>1926     pub unsafe fn IsPathSupported(&self, pwszsharepath: *const u16) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
1927         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1928         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszsharepath), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
1929     }
1930     #[cfg(feature = "Win32_Foundation")]
IsPathSnapshotted(&self, pwszsharepath: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::Result<()>1931     pub unsafe fn IsPathSnapshotted(&self, pwszsharepath: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::Result<()> {
1932         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszsharepath), ::std::mem::transmute(pbsnapshotspresent), ::std::mem::transmute(plsnapshotcompatibility)).ok()
1933     }
1934     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
SetSnapshotProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, snapshotid: Param0, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: Param2) -> ::windows::runtime::Result<()>1935     pub unsafe fn SetSnapshotProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, snapshotid: Param0, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: Param2) -> ::windows::runtime::Result<()> {
1936         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), ::std::mem::transmute(esnapshotpropertyid), vproperty.into_param().abi()).ok()
1937     }
1938 }
1939 unsafe impl ::windows::runtime::Interface for IVssFileShareSnapshotProvider {
1940     type Vtable = IVssFileShareSnapshotProvider_abi;
1941     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3361955936, 31790, 4575, [140, 74, 8, 0, 32, 12, 154, 102]);
1942 }
1943 impl ::std::convert::From<IVssFileShareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: IVssFileShareSnapshotProvider) -> Self1944     fn from(value: IVssFileShareSnapshotProvider) -> Self {
1945         unsafe { ::std::mem::transmute(value) }
1946     }
1947 }
1948 impl ::std::convert::From<&IVssFileShareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: &IVssFileShareSnapshotProvider) -> Self1949     fn from(value: &IVssFileShareSnapshotProvider) -> Self {
1950         ::std::convert::From::from(::std::clone::Clone::clone(value))
1951     }
1952 }
1953 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssFileShareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1954     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1955         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1956     }
1957 }
1958 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssFileShareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1959     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1960         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1961     }
1962 }
1963 #[repr(C)]
1964 #[doc(hidden)]
1965 pub struct IVssFileShareSnapshotProvider_abi(
1966     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1967     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1968     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1969     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lcontext: i32) -> ::windows::runtime::HRESULT,
1970     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, pprop: *mut VSS_SNAPSHOT_PROP) -> ::windows::runtime::HRESULT,
1971     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, queriedobjectid: ::windows::runtime::GUID, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1972     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sourceobjectid: ::windows::runtime::GUID, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: super::super::Foundation::BOOL, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1973     #[cfg(not(feature = "Win32_Foundation"))] usize,
1974     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID, snapshotid: ::windows::runtime::GUID, pwszsharepath: *const u16, lnewcontext: i32, providerid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1975     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszsharepath: *const u16, pbsupportedbythisprovider: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1976     #[cfg(not(feature = "Win32_Foundation"))] usize,
1977     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszsharepath: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::HRESULT,
1978     #[cfg(not(feature = "Win32_Foundation"))] usize,
1979     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
1980     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
1981 );
1982 #[repr(transparent)]
1983 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1984 pub struct IVssHardwareSnapshotProvider(::windows::runtime::IUnknown);
1985 impl IVssHardwareSnapshotProvider {
1986     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>1987     pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
1988         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(lcontext), ::std::mem::transmute(rgwszdevices), ::std::mem::transmute(pluninformation), ::std::mem::transmute(pbissupported)).ok()
1989     }
1990     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
FillInLunInfo(&self, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>1991     pub unsafe fn FillInLunInfo(&self, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
1992         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(wszdevicename), ::std::mem::transmute(pluninfo), ::std::mem::transmute(pbissupported)).ok()
1993     }
1994     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>1995     pub unsafe fn BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
1996         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi(), snapshotid.into_param().abi(), ::std::mem::transmute(lcontext), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgdevicenames), ::std::mem::transmute(rgluninformation)).ok()
1997     }
1998     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>1999     pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2000         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgdevicenames), ::std::mem::transmute(rgsourceluns), ::std::mem::transmute(rgdestinationluns)).ok()
2001     }
2002     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
LocateLuns(&self, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2003     pub unsafe fn LocateLuns(&self, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2004         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgsourceluns)).ok()
2005     }
2006     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
OnLunEmpty(&self, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2007     pub unsafe fn OnLunEmpty(&self, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2008         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(wszdevicename), ::std::mem::transmute(pinformation)).ok()
2009     }
2010 }
2011 unsafe impl ::windows::runtime::Interface for IVssHardwareSnapshotProvider {
2012     type Vtable = IVssHardwareSnapshotProvider_abi;
2013     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2509480279, 17641, 17220, [187, 235, 68, 251, 249, 176, 107, 16]);
2014 }
2015 impl ::std::convert::From<IVssHardwareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: IVssHardwareSnapshotProvider) -> Self2016     fn from(value: IVssHardwareSnapshotProvider) -> Self {
2017         unsafe { ::std::mem::transmute(value) }
2018     }
2019 }
2020 impl ::std::convert::From<&IVssHardwareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: &IVssHardwareSnapshotProvider) -> Self2021     fn from(value: &IVssHardwareSnapshotProvider) -> Self {
2022         ::std::convert::From::from(::std::clone::Clone::clone(value))
2023     }
2024 }
2025 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssHardwareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2026     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2027         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2028     }
2029 }
2030 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssHardwareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2031     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2032         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2033     }
2034 }
2035 #[repr(C)]
2036 #[doc(hidden)]
2037 pub struct IVssHardwareSnapshotProvider_abi(
2038     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2039     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2041     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2042     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2043     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2044     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2045     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID, snapshotid: ::windows::runtime::GUID, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2046     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2047     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2048     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2049     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2050     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2051     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2052     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2053 );
2054 #[repr(transparent)]
2055 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2056 pub struct IVssHardwareSnapshotProviderEx(::windows::runtime::IUnknown);
2057 impl IVssHardwareSnapshotProviderEx {
2058     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>2059     pub unsafe fn AreLunsSupported(&self, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
2060         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(lcontext), ::std::mem::transmute(rgwszdevices), ::std::mem::transmute(pluninformation), ::std::mem::transmute(pbissupported)).ok()
2061     }
2062     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
FillInLunInfo(&self, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()>2063     pub unsafe fn FillInLunInfo(&self, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
2064         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(wszdevicename), ::std::mem::transmute(pluninfo), ::std::mem::transmute(pbissupported)).ok()
2065     }
2066     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2067     pub unsafe fn BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2068         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi(), snapshotid.into_param().abi(), ::std::mem::transmute(lcontext), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgdevicenames), ::std::mem::transmute(rgluninformation)).ok()
2069     }
2070     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2071     pub unsafe fn GetTargetLuns(&self, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2072         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgdevicenames), ::std::mem::transmute(rgsourceluns), ::std::mem::transmute(rgdestinationluns)).ok()
2073     }
2074     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
LocateLuns(&self, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2075     pub unsafe fn LocateLuns(&self, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2076         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(lluncount), ::std::mem::transmute(rgsourceluns)).ok()
2077     }
2078     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
OnLunEmpty(&self, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()>2079     pub unsafe fn OnLunEmpty(&self, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::Result<()> {
2080         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(wszdevicename), ::std::mem::transmute(pinformation)).ok()
2081     }
GetProviderCapabilities(&self) -> ::windows::runtime::Result<u64>2082     pub unsafe fn GetProviderCapabilities(&self) -> ::windows::runtime::Result<u64> {
2083         let mut result__: <u64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2084         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u64>(result__)
2085     }
2086     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
OnLunStateChange(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, dwflags: u32) -> ::windows::runtime::Result<()>2087     pub unsafe fn OnLunStateChange(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, dwflags: u32) -> ::windows::runtime::Result<()> {
2088         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(psnapshotluns), ::std::mem::transmute(poriginalluns), ::std::mem::transmute(dwcount), ::std::mem::transmute(dwflags)).ok()
2089     }
2090     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
ResyncLuns(&self, psourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, ptargetluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::runtime::Result<IVssAsync>2091     pub unsafe fn ResyncLuns(&self, psourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, ptargetluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::runtime::Result<IVssAsync> {
2092         let mut result__: <IVssAsync as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2093         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(psourceluns), ::std::mem::transmute(ptargetluns), ::std::mem::transmute(dwcount), &mut result__).from_abi::<IVssAsync>(result__)
2094     }
2095     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))]
OnReuseLuns(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::runtime::Result<()>2096     pub unsafe fn OnReuseLuns(&self, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::runtime::Result<()> {
2097         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(psnapshotluns), ::std::mem::transmute(poriginalluns), ::std::mem::transmute(dwcount)).ok()
2098     }
2099 }
2100 unsafe impl ::windows::runtime::Interface for IVssHardwareSnapshotProviderEx {
2101     type Vtable = IVssHardwareSnapshotProviderEx_abi;
2102     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2136713509, 52657, 19729, [167, 31, 51, 158, 183, 231, 9, 253]);
2103 }
2104 impl ::std::convert::From<IVssHardwareSnapshotProviderEx> for ::windows::runtime::IUnknown {
from(value: IVssHardwareSnapshotProviderEx) -> Self2105     fn from(value: IVssHardwareSnapshotProviderEx) -> Self {
2106         unsafe { ::std::mem::transmute(value) }
2107     }
2108 }
2109 impl ::std::convert::From<&IVssHardwareSnapshotProviderEx> for ::windows::runtime::IUnknown {
from(value: &IVssHardwareSnapshotProviderEx) -> Self2110     fn from(value: &IVssHardwareSnapshotProviderEx) -> Self {
2111         ::std::convert::From::from(::std::clone::Clone::clone(value))
2112     }
2113 }
2114 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssHardwareSnapshotProviderEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2115     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2116         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2117     }
2118 }
2119 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssHardwareSnapshotProviderEx {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2120     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2121         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2122     }
2123 }
2124 impl ::std::convert::From<IVssHardwareSnapshotProviderEx> for IVssHardwareSnapshotProvider {
from(value: IVssHardwareSnapshotProviderEx) -> Self2125     fn from(value: IVssHardwareSnapshotProviderEx) -> Self {
2126         unsafe { ::std::mem::transmute(value) }
2127     }
2128 }
2129 impl ::std::convert::From<&IVssHardwareSnapshotProviderEx> for IVssHardwareSnapshotProvider {
from(value: &IVssHardwareSnapshotProviderEx) -> Self2130     fn from(value: &IVssHardwareSnapshotProviderEx) -> Self {
2131         ::std::convert::From::from(::std::clone::Clone::clone(value))
2132     }
2133 }
2134 impl<'a> ::windows::runtime::IntoParam<'a, IVssHardwareSnapshotProvider> for IVssHardwareSnapshotProviderEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssHardwareSnapshotProvider>2135     fn into_param(self) -> ::windows::runtime::Param<'a, IVssHardwareSnapshotProvider> {
2136         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssHardwareSnapshotProvider>::into(self))
2137     }
2138 }
2139 impl<'a> ::windows::runtime::IntoParam<'a, IVssHardwareSnapshotProvider> for &IVssHardwareSnapshotProviderEx {
into_param(self) -> ::windows::runtime::Param<'a, IVssHardwareSnapshotProvider>2140     fn into_param(self) -> ::windows::runtime::Param<'a, IVssHardwareSnapshotProvider> {
2141         ::windows::runtime::Param::Owned(::std::convert::Into::<IVssHardwareSnapshotProvider>::into(::std::clone::Clone::clone(self)))
2142     }
2143 }
2144 #[repr(C)]
2145 #[doc(hidden)]
2146 pub struct IVssHardwareSnapshotProviderEx_abi(
2147     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2150     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, lcontext: i32, rgwszdevices: *const *const u16, pluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2151     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2152     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdevicename: *const u16, pluninfo: *mut super::VirtualDiskService::VDS_LUN_INFORMATION, pbissupported: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2153     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2154     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID, snapshotid: ::windows::runtime::GUID, lcontext: i32, lluncount: i32, rgdevicenames: *const *const u16, rgluninformation: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2155     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2156     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, rgdevicenames: *const *const u16, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, rgdestinationluns: *mut super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2157     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2158     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lluncount: i32, rgsourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2159     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2160     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszdevicename: *const u16, pinformation: *const super::VirtualDiskService::VDS_LUN_INFORMATION) -> ::windows::runtime::HRESULT,
2161     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2162     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, plloriginalcapabilitymask: *mut u64) -> ::windows::runtime::HRESULT,
2163     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, dwflags: u32) -> ::windows::runtime::HRESULT,
2164     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2165     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psourceluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, ptargetluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32, ppasync: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2166     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2167     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, psnapshotluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, poriginalluns: *const super::VirtualDiskService::VDS_LUN_INFORMATION, dwcount: u32) -> ::windows::runtime::HRESULT,
2168     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Storage_VirtualDiskService")))] usize,
2169 );
2170 #[repr(transparent)]
2171 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2172 pub struct IVssProviderCreateSnapshotSet(::windows::runtime::IUnknown);
2173 impl IVssProviderCreateSnapshotSet {
EndPrepareSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2174     pub unsafe fn EndPrepareSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2175         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2176     }
PreCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2177     pub unsafe fn PreCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2178         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2179     }
CommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2180     pub unsafe fn CommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2181         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2182     }
PostCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, lsnapshotscount: i32) -> ::windows::runtime::Result<()>2183     pub unsafe fn PostCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, lsnapshotscount: i32) -> ::windows::runtime::Result<()> {
2184         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi(), ::std::mem::transmute(lsnapshotscount)).ok()
2185     }
PreFinalCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2186     pub unsafe fn PreFinalCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2187         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2188     }
PostFinalCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2189     pub unsafe fn PostFinalCommitSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2190         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2191     }
AbortSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()>2192     pub unsafe fn AbortSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0) -> ::windows::runtime::Result<()> {
2193         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi()).ok()
2194     }
2195 }
2196 unsafe impl ::windows::runtime::Interface for IVssProviderCreateSnapshotSet {
2197     type Vtable = IVssProviderCreateSnapshotSet_abi;
2198     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1602834011, 7737, 18296, [142, 35, 154, 186, 217, 240, 224, 140]);
2199 }
2200 impl ::std::convert::From<IVssProviderCreateSnapshotSet> for ::windows::runtime::IUnknown {
from(value: IVssProviderCreateSnapshotSet) -> Self2201     fn from(value: IVssProviderCreateSnapshotSet) -> Self {
2202         unsafe { ::std::mem::transmute(value) }
2203     }
2204 }
2205 impl ::std::convert::From<&IVssProviderCreateSnapshotSet> for ::windows::runtime::IUnknown {
from(value: &IVssProviderCreateSnapshotSet) -> Self2206     fn from(value: &IVssProviderCreateSnapshotSet) -> Self {
2207         ::std::convert::From::from(::std::clone::Clone::clone(value))
2208     }
2209 }
2210 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssProviderCreateSnapshotSet {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2211     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2212         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2213     }
2214 }
2215 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssProviderCreateSnapshotSet {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2216     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2217         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2218     }
2219 }
2220 #[repr(C)]
2221 #[doc(hidden)]
2222 pub struct IVssProviderCreateSnapshotSet_abi(
2223     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2224     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2225     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2227     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2228     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2229     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID, lsnapshotscount: i32) -> ::windows::runtime::HRESULT,
2230     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2231     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2232     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2233 );
2234 #[repr(transparent)]
2235 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2236 pub struct IVssProviderNotifications(::windows::runtime::IUnknown);
2237 impl IVssProviderNotifications {
OnLoad<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pcallback: Param0) -> ::windows::runtime::Result<()>2238     pub unsafe fn OnLoad<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(&self, pcallback: Param0) -> ::windows::runtime::Result<()> {
2239         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pcallback.into_param().abi()).ok()
2240     }
2241     #[cfg(feature = "Win32_Foundation")]
OnUnload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bforceunload: Param0) -> ::windows::runtime::Result<()>2242     pub unsafe fn OnUnload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bforceunload: Param0) -> ::windows::runtime::Result<()> {
2243         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), bforceunload.into_param().abi()).ok()
2244     }
2245 }
2246 unsafe impl ::windows::runtime::Interface for IVssProviderNotifications {
2247     type Vtable = IVssProviderNotifications_abi;
2248     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3848376351, 933, 19198, [134, 208, 114, 186, 238, 206, 112, 4]);
2249 }
2250 impl ::std::convert::From<IVssProviderNotifications> for ::windows::runtime::IUnknown {
from(value: IVssProviderNotifications) -> Self2251     fn from(value: IVssProviderNotifications) -> Self {
2252         unsafe { ::std::mem::transmute(value) }
2253     }
2254 }
2255 impl ::std::convert::From<&IVssProviderNotifications> for ::windows::runtime::IUnknown {
from(value: &IVssProviderNotifications) -> Self2256     fn from(value: &IVssProviderNotifications) -> Self {
2257         ::std::convert::From::from(::std::clone::Clone::clone(value))
2258     }
2259 }
2260 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssProviderNotifications {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2261     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2262         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2263     }
2264 }
2265 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssProviderNotifications {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2266     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2267         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2268     }
2269 }
2270 #[repr(C)]
2271 #[doc(hidden)]
2272 pub struct IVssProviderNotifications_abi(
2273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2275     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2276     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2277     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bforceunload: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2278     #[cfg(not(feature = "Win32_Foundation"))] usize,
2279 );
2280 #[repr(transparent)]
2281 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2282 pub struct IVssSnapshotMgmt(::windows::runtime::IUnknown);
2283 impl IVssSnapshotMgmt {
GetProviderMgmtInterface<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, interfaceid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<::windows::runtime::IUnknown>2284     pub unsafe fn GetProviderMgmtInterface<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, interfaceid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
2285         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2286         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), providerid.into_param().abi(), ::std::mem::transmute(interfaceid), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
2287     }
QueryVolumesSupportedForSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, lcontext: i32) -> ::windows::runtime::Result<IVssEnumMgmtObject>2288     pub unsafe fn QueryVolumesSupportedForSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, providerid: Param0, lcontext: i32) -> ::windows::runtime::Result<IVssEnumMgmtObject> {
2289         let mut result__: <IVssEnumMgmtObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2290         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), providerid.into_param().abi(), ::std::mem::transmute(lcontext), &mut result__).from_abi::<IVssEnumMgmtObject>(result__)
2291     }
QuerySnapshotsByVolume<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pwszvolumename: *const u16, providerid: Param1) -> ::windows::runtime::Result<IVssEnumObject>2292     pub unsafe fn QuerySnapshotsByVolume<'a, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, pwszvolumename: *const u16, providerid: Param1) -> ::windows::runtime::Result<IVssEnumObject> {
2293         let mut result__: <IVssEnumObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2294         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), providerid.into_param().abi(), &mut result__).from_abi::<IVssEnumObject>(result__)
2295     }
2296 }
2297 unsafe impl ::windows::runtime::Interface for IVssSnapshotMgmt {
2298     type Vtable = IVssSnapshotMgmt_abi;
2299     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4202559305, 26343, 18822, [162, 127, 226, 240, 74, 229, 55, 114]);
2300 }
2301 impl ::std::convert::From<IVssSnapshotMgmt> for ::windows::runtime::IUnknown {
from(value: IVssSnapshotMgmt) -> Self2302     fn from(value: IVssSnapshotMgmt) -> Self {
2303         unsafe { ::std::mem::transmute(value) }
2304     }
2305 }
2306 impl ::std::convert::From<&IVssSnapshotMgmt> for ::windows::runtime::IUnknown {
from(value: &IVssSnapshotMgmt) -> Self2307     fn from(value: &IVssSnapshotMgmt) -> Self {
2308         ::std::convert::From::from(::std::clone::Clone::clone(value))
2309     }
2310 }
2311 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssSnapshotMgmt {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2312     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2313         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2314     }
2315 }
2316 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssSnapshotMgmt {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2317     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2318         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2319     }
2320 }
2321 #[repr(C)]
2322 #[doc(hidden)]
2323 pub struct IVssSnapshotMgmt_abi(
2324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2326     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2327     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID, interfaceid: *const ::windows::runtime::GUID, ppitf: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2328     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, providerid: ::windows::runtime::GUID, lcontext: i32, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, providerid: ::windows::runtime::GUID, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2330 );
2331 #[repr(transparent)]
2332 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2333 pub struct IVssSnapshotMgmt2(::windows::runtime::IUnknown);
2334 impl IVssSnapshotMgmt2 {
GetMinDiffAreaSize(&self) -> ::windows::runtime::Result<i64>2335     pub unsafe fn GetMinDiffAreaSize(&self) -> ::windows::runtime::Result<i64> {
2336         let mut result__: <i64 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2337         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i64>(result__)
2338     }
2339 }
2340 unsafe impl ::windows::runtime::Interface for IVssSnapshotMgmt2 {
2341     type Vtable = IVssSnapshotMgmt2_abi;
2342     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(258075705, 65154, 17906, [163, 240, 118, 139, 93, 66, 113, 2]);
2343 }
2344 impl ::std::convert::From<IVssSnapshotMgmt2> for ::windows::runtime::IUnknown {
from(value: IVssSnapshotMgmt2) -> Self2345     fn from(value: IVssSnapshotMgmt2) -> Self {
2346         unsafe { ::std::mem::transmute(value) }
2347     }
2348 }
2349 impl ::std::convert::From<&IVssSnapshotMgmt2> for ::windows::runtime::IUnknown {
from(value: &IVssSnapshotMgmt2) -> Self2350     fn from(value: &IVssSnapshotMgmt2) -> Self {
2351         ::std::convert::From::from(::std::clone::Clone::clone(value))
2352     }
2353 }
2354 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2355     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2356         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2357     }
2358 }
2359 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssSnapshotMgmt2 {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2360     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2361         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2362     }
2363 }
2364 #[repr(C)]
2365 #[doc(hidden)]
2366 pub struct IVssSnapshotMgmt2_abi(
2367     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2368     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2369     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2370     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pllmindiffareasize: *mut i64) -> ::windows::runtime::HRESULT,
2371 );
2372 #[repr(transparent)]
2373 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2374 pub struct IVssSoftwareSnapshotProvider(::windows::runtime::IUnknown);
2375 impl IVssSoftwareSnapshotProvider {
SetContext(&self, lcontext: i32) -> ::windows::runtime::Result<()>2376     pub unsafe fn SetContext(&self, lcontext: i32) -> ::windows::runtime::Result<()> {
2377         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lcontext)).ok()
2378     }
GetSnapshotProperties<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<VSS_SNAPSHOT_PROP>2379     pub unsafe fn GetSnapshotProperties<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<VSS_SNAPSHOT_PROP> {
2380         let mut result__: <VSS_SNAPSHOT_PROP as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2381         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), &mut result__).from_abi::<VSS_SNAPSHOT_PROP>(result__)
2382     }
Query<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, queriedobjectid: Param0, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE) -> ::windows::runtime::Result<IVssEnumObject>2383     pub unsafe fn Query<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, queriedobjectid: Param0, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE) -> ::windows::runtime::Result<IVssEnumObject> {
2384         let mut result__: <IVssEnumObject as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2385         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), queriedobjectid.into_param().abi(), ::std::mem::transmute(equeriedobjecttype), ::std::mem::transmute(ereturnedobjectstype), &mut result__).from_abi::<IVssEnumObject>(result__)
2386     }
2387     #[cfg(feature = "Win32_Foundation")]
DeleteSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, sourceobjectid: Param0, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: Param2, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()>2388     pub unsafe fn DeleteSnapshots<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, sourceobjectid: Param0, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: Param2, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
2389         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), sourceobjectid.into_param().abi(), ::std::mem::transmute(esourceobjecttype), bforcedelete.into_param().abi(), ::std::mem::transmute(pldeletedsnapshots), ::std::mem::transmute(pnondeletedsnapshotid)).ok()
2390     }
BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, pwszvolumename: *const u16, lnewcontext: i32) -> ::windows::runtime::Result<()>2391     pub unsafe fn BeginPrepareSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotsetid: Param0, snapshotid: Param1, pwszvolumename: *const u16, lnewcontext: i32) -> ::windows::runtime::Result<()> {
2392         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), snapshotsetid.into_param().abi(), snapshotid.into_param().abi(), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(lnewcontext)).ok()
2393     }
2394     #[cfg(feature = "Win32_Foundation")]
IsVolumeSupported(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<super::super::Foundation::BOOL>2395     pub unsafe fn IsVolumeSupported(&self, pwszvolumename: *const u16) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
2396         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2397         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
2398     }
2399     #[cfg(feature = "Win32_Foundation")]
IsVolumeSnapshotted(&self, pwszvolumename: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::Result<()>2400     pub unsafe fn IsVolumeSnapshotted(&self, pwszvolumename: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::Result<()> {
2401         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolumename), ::std::mem::transmute(pbsnapshotspresent), ::std::mem::transmute(plsnapshotcompatibility)).ok()
2402     }
2403     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))]
SetSnapshotProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, snapshotid: Param0, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: Param2) -> ::windows::runtime::Result<()>2404     pub unsafe fn SetSnapshotProperty<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param2: ::windows::runtime::IntoParam<'a, super::super::System::Com::VARIANT>>(&self, snapshotid: Param0, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: Param2) -> ::windows::runtime::Result<()> {
2405         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), snapshotid.into_param().abi(), ::std::mem::transmute(esnapshotpropertyid), vproperty.into_param().abi()).ok()
2406     }
RevertToSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<()>2407     pub unsafe fn RevertToSnapshot<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, snapshotid: Param0) -> ::windows::runtime::Result<()> {
2408         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), snapshotid.into_param().abi()).ok()
2409     }
QueryRevertStatus(&self, pwszvolume: *const u16) -> ::windows::runtime::Result<IVssAsync>2410     pub unsafe fn QueryRevertStatus(&self, pwszvolume: *const u16) -> ::windows::runtime::Result<IVssAsync> {
2411         let mut result__: <IVssAsync as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2412         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwszvolume), &mut result__).from_abi::<IVssAsync>(result__)
2413     }
2414 }
2415 unsafe impl ::windows::runtime::Interface for IVssSoftwareSnapshotProvider {
2416     type Vtable = IVssSoftwareSnapshotProvider_abi;
2417     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1620972094, 11354, 17619, [143, 1, 11, 29, 154, 71, 209, 255]);
2418 }
2419 impl ::std::convert::From<IVssSoftwareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: IVssSoftwareSnapshotProvider) -> Self2420     fn from(value: IVssSoftwareSnapshotProvider) -> Self {
2421         unsafe { ::std::mem::transmute(value) }
2422     }
2423 }
2424 impl ::std::convert::From<&IVssSoftwareSnapshotProvider> for ::windows::runtime::IUnknown {
from(value: &IVssSoftwareSnapshotProvider) -> Self2425     fn from(value: &IVssSoftwareSnapshotProvider) -> Self {
2426         ::std::convert::From::from(::std::clone::Clone::clone(value))
2427     }
2428 }
2429 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssSoftwareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2430     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2431         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2432     }
2433 }
2434 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssSoftwareSnapshotProvider {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2435     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2436         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2437     }
2438 }
2439 #[repr(C)]
2440 #[doc(hidden)]
2441 pub struct IVssSoftwareSnapshotProvider_abi(
2442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2445     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lcontext: i32) -> ::windows::runtime::HRESULT,
2446     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, pprop: *mut VSS_SNAPSHOT_PROP) -> ::windows::runtime::HRESULT,
2447     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, queriedobjectid: ::windows::runtime::GUID, equeriedobjecttype: VSS_OBJECT_TYPE, ereturnedobjectstype: VSS_OBJECT_TYPE, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2448     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, sourceobjectid: ::windows::runtime::GUID, esourceobjecttype: VSS_OBJECT_TYPE, bforcedelete: super::super::Foundation::BOOL, pldeletedsnapshots: *mut i32, pnondeletedsnapshotid: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2449     #[cfg(not(feature = "Win32_Foundation"))] usize,
2450     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotsetid: ::windows::runtime::GUID, snapshotid: ::windows::runtime::GUID, pwszvolumename: *const u16, lnewcontext: i32) -> ::windows::runtime::HRESULT,
2451     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pbsupportedbythisprovider: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2452     #[cfg(not(feature = "Win32_Foundation"))] usize,
2453     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolumename: *const u16, pbsnapshotspresent: *mut super::super::Foundation::BOOL, plsnapshotcompatibility: *mut i32) -> ::windows::runtime::HRESULT,
2454     #[cfg(not(feature = "Win32_Foundation"))] usize,
2455     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID, esnapshotpropertyid: VSS_SNAPSHOT_PROPERTY_ID, vproperty: ::std::mem::ManuallyDrop<super::super::System::Com::VARIANT>) -> ::windows::runtime::HRESULT,
2456     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole_Automation")))] usize,
2457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, snapshotid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwszvolume: *const u16, ppasync: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2459 );
2460 #[repr(transparent)]
2461 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2462 pub struct IVssWMDependency(::windows::runtime::IUnknown);
2463 impl IVssWMDependency {
GetWriterId(&self, pwriterid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()>2464     pub unsafe fn GetWriterId(&self, pwriterid: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
2465         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwriterid)).ok()
2466     }
2467     #[cfg(feature = "Win32_Foundation")]
GetLogicalPath(&self, pbstrlogicalpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>2468     pub unsafe fn GetLogicalPath(&self, pbstrlogicalpath: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
2469         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrlogicalpath)).ok()
2470     }
2471     #[cfg(feature = "Win32_Foundation")]
GetComponentName(&self, pbstrcomponentname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()>2472     pub unsafe fn GetComponentName(&self, pbstrcomponentname: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
2473         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pbstrcomponentname)).ok()
2474     }
2475 }
2476 unsafe impl ::windows::runtime::Interface for IVssWMDependency {
2477     type Vtable = IVssWMDependency_abi;
2478     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::zeroed();
2479 }
2480 impl ::std::convert::From<IVssWMDependency> for ::windows::runtime::IUnknown {
from(value: IVssWMDependency) -> Self2481     fn from(value: IVssWMDependency) -> Self {
2482         unsafe { ::std::mem::transmute(value) }
2483     }
2484 }
2485 impl ::std::convert::From<&IVssWMDependency> for ::windows::runtime::IUnknown {
from(value: &IVssWMDependency) -> Self2486     fn from(value: &IVssWMDependency) -> Self {
2487         ::std::convert::From::from(::std::clone::Clone::clone(value))
2488     }
2489 }
2490 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssWMDependency {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2491     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2492         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2493     }
2494 }
2495 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssWMDependency {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2496     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2497         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2498     }
2499 }
2500 #[repr(C)]
2501 #[doc(hidden)]
2502 pub struct IVssWMDependency_abi(
2503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2504     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2505     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2506     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwriterid: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2507     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrlogicalpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2508     #[cfg(not(feature = "Win32_Foundation"))] usize,
2509     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrcomponentname: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2510     #[cfg(not(feature = "Win32_Foundation"))] usize,
2511 );
2512 #[repr(transparent)]
2513 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2514 pub struct IVssWMFiledesc(::windows::runtime::IUnknown);
2515 impl IVssWMFiledesc {
2516     #[cfg(feature = "Win32_Foundation")]
GetPath(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>2517     pub unsafe fn GetPath(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2518         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2519         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2520     }
2521     #[cfg(feature = "Win32_Foundation")]
GetFilespec(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>2522     pub unsafe fn GetFilespec(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2523         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2524         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2525     }
GetRecursive(&self) -> ::windows::runtime::Result<bool>2526     pub unsafe fn GetRecursive(&self) -> ::windows::runtime::Result<bool> {
2527         let mut result__: <bool as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2528         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<bool>(result__)
2529     }
2530     #[cfg(feature = "Win32_Foundation")]
GetAlternateLocation(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR>2531     pub unsafe fn GetAlternateLocation(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2532         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2533         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2534     }
GetBackupTypeMask(&self) -> ::windows::runtime::Result<u32>2535     pub unsafe fn GetBackupTypeMask(&self) -> ::windows::runtime::Result<u32> {
2536         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2537         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2538     }
2539 }
2540 unsafe impl ::windows::runtime::Interface for IVssWMFiledesc {
2541     type Vtable = IVssWMFiledesc_abi;
2542     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::zeroed();
2543 }
2544 impl ::std::convert::From<IVssWMFiledesc> for ::windows::runtime::IUnknown {
from(value: IVssWMFiledesc) -> Self2545     fn from(value: IVssWMFiledesc) -> Self {
2546         unsafe { ::std::mem::transmute(value) }
2547     }
2548 }
2549 impl ::std::convert::From<&IVssWMFiledesc> for ::windows::runtime::IUnknown {
from(value: &IVssWMFiledesc) -> Self2550     fn from(value: &IVssWMFiledesc) -> Self {
2551         ::std::convert::From::from(::std::clone::Clone::clone(value))
2552     }
2553 }
2554 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssWMFiledesc {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2555     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2556         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2557     }
2558 }
2559 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssWMFiledesc {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2560     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2561         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2562     }
2563 }
2564 #[repr(C)]
2565 #[doc(hidden)]
2566 pub struct IVssWMFiledesc_abi(
2567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2570     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrpath: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2571     #[cfg(not(feature = "Win32_Foundation"))] usize,
2572     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrfilespec: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2573     #[cfg(not(feature = "Win32_Foundation"))] usize,
2574     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbrecursive: *mut bool) -> ::windows::runtime::HRESULT,
2575     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstralternatelocation: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2576     #[cfg(not(feature = "Win32_Foundation"))] usize,
2577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdwtypemask: *mut u32) -> ::windows::runtime::HRESULT,
2578 );
2579 #[repr(transparent)]
2580 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2581 pub struct IVssWriterComponents(::windows::runtime::IUnknown);
2582 impl IVssWriterComponents {
GetComponentCount(&self, pccomponents: *mut u32) -> ::windows::runtime::Result<()>2583     pub unsafe fn GetComponentCount(&self, pccomponents: *mut u32) -> ::windows::runtime::Result<()> {
2584         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pccomponents)).ok()
2585     }
GetWriterInfo(&self, pidinstance: *mut ::windows::runtime::GUID, pidwriter: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()>2586     pub unsafe fn GetWriterInfo(&self, pidinstance: *mut ::windows::runtime::GUID, pidwriter: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
2587         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pidinstance), ::std::mem::transmute(pidwriter)).ok()
2588     }
GetComponent(&self, icomponent: u32) -> ::windows::runtime::Result<IVssComponent>2589     pub unsafe fn GetComponent(&self, icomponent: u32) -> ::windows::runtime::Result<IVssComponent> {
2590         let mut result__: <IVssComponent as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2591         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(icomponent), &mut result__).from_abi::<IVssComponent>(result__)
2592     }
2593 }
2594 unsafe impl ::windows::runtime::Interface for IVssWriterComponents {
2595     type Vtable = IVssWriterComponents_abi;
2596     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::zeroed();
2597 }
2598 impl ::std::convert::From<IVssWriterComponents> for ::windows::runtime::IUnknown {
from(value: IVssWriterComponents) -> Self2599     fn from(value: IVssWriterComponents) -> Self {
2600         unsafe { ::std::mem::transmute(value) }
2601     }
2602 }
2603 impl ::std::convert::From<&IVssWriterComponents> for ::windows::runtime::IUnknown {
from(value: &IVssWriterComponents) -> Self2604     fn from(value: &IVssWriterComponents) -> Self {
2605         ::std::convert::From::from(::std::clone::Clone::clone(value))
2606     }
2607 }
2608 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssWriterComponents {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2609     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2610         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2611     }
2612 }
2613 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssWriterComponents {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2614     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2615         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2616     }
2617 }
2618 #[repr(C)]
2619 #[doc(hidden)]
2620 pub struct IVssWriterComponents_abi(
2621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pccomponents: *mut u32) -> ::windows::runtime::HRESULT,
2625     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pidinstance: *mut ::windows::runtime::GUID, pidwriter: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2626     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, icomponent: u32, ppcomponent: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2627 );
2628 #[repr(transparent)]
2629 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2630 pub struct IVssWriterImpl(::windows::runtime::IUnknown);
2631 impl IVssWriterImpl {
2632     #[cfg(feature = "Win32_Foundation")]
Initialize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>( &self, writerid: Param0, wszwritername: Param1, wszwriterinstancename: Param2, dwmajorversion: u32, dwminorversion: u32, ut: VSS_USAGE_TYPE, st: VSS_SOURCE_TYPE, nlevel: VSS_APPLICATION_LEVEL, dwtimeout: u32, aws: VSS_ALTERNATE_WRITER_STATE, biothrottlingonly: u8, ) -> ::windows::runtime::Result<()>2633     pub unsafe fn Initialize<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(
2634         &self,
2635         writerid: Param0,
2636         wszwritername: Param1,
2637         wszwriterinstancename: Param2,
2638         dwmajorversion: u32,
2639         dwminorversion: u32,
2640         ut: VSS_USAGE_TYPE,
2641         st: VSS_SOURCE_TYPE,
2642         nlevel: VSS_APPLICATION_LEVEL,
2643         dwtimeout: u32,
2644         aws: VSS_ALTERNATE_WRITER_STATE,
2645         biothrottlingonly: u8,
2646     ) -> ::windows::runtime::Result<()> {
2647         (::windows::runtime::Interface::vtable(self).3)(
2648             ::std::mem::transmute_copy(self),
2649             writerid.into_param().abi(),
2650             wszwritername.into_param().abi(),
2651             wszwriterinstancename.into_param().abi(),
2652             ::std::mem::transmute(dwmajorversion),
2653             ::std::mem::transmute(dwminorversion),
2654             ::std::mem::transmute(ut),
2655             ::std::mem::transmute(st),
2656             ::std::mem::transmute(nlevel),
2657             ::std::mem::transmute(dwtimeout),
2658             ::std::mem::transmute(aws),
2659             ::std::mem::transmute(biothrottlingonly),
2660         )
2661         .ok()
2662     }
Subscribe(&self, dwsubscribetimeout: u32, dweventflags: u32) -> ::windows::runtime::Result<()>2663     pub unsafe fn Subscribe(&self, dwsubscribetimeout: u32, dweventflags: u32) -> ::windows::runtime::Result<()> {
2664         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwsubscribetimeout), ::std::mem::transmute(dweventflags)).ok()
2665     }
Unsubscribe(&self) -> ::windows::runtime::Result<()>2666     pub unsafe fn Unsubscribe(&self) -> ::windows::runtime::Result<()> {
2667         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
2668     }
Uninitialize(&self)2669     pub unsafe fn Uninitialize(&self) {
2670         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)))
2671     }
2672     #[cfg(feature = "Win32_Foundation")]
GetCurrentVolumeArray(&self) -> *mut super::super::Foundation::PWSTR2673     pub unsafe fn GetCurrentVolumeArray(&self) -> *mut super::super::Foundation::PWSTR {
2674         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self)))
2675     }
GetCurrentVolumeCount(&self) -> u322676     pub unsafe fn GetCurrentVolumeCount(&self) -> u32 {
2677         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self)))
2678     }
2679     #[cfg(feature = "Win32_Foundation")]
GetSnapshotDeviceName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszoriginalvolume: Param0) -> ::windows::runtime::Result<super::super::Foundation::PWSTR>2680     pub unsafe fn GetSnapshotDeviceName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszoriginalvolume: Param0) -> ::windows::runtime::Result<super::super::Foundation::PWSTR> {
2681         let mut result__: <super::super::Foundation::PWSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2682         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), wszoriginalvolume.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::PWSTR>(result__)
2683     }
GetCurrentSnapshotSetId(&self) -> ::windows::runtime::GUID2684     pub unsafe fn GetCurrentSnapshotSetId(&self) -> ::windows::runtime::GUID {
2685         let mut result__: ::windows::runtime::GUID = ::std::default::Default::default();
2686         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), &mut result__);
2687         result__
2688     }
GetContext(&self) -> i322689     pub unsafe fn GetContext(&self) -> i32 {
2690         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)))
2691     }
GetCurrentLevel(&self) -> VSS_APPLICATION_LEVEL2692     pub unsafe fn GetCurrentLevel(&self) -> VSS_APPLICATION_LEVEL {
2693         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)))
2694     }
2695     #[cfg(feature = "Win32_Foundation")]
IsPathAffected<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0) -> bool2696     pub unsafe fn IsPathAffected<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, wszpath: Param0) -> bool {
2697         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), wszpath.into_param().abi()))
2698     }
IsBootableSystemStateBackedUp(&self) -> bool2699     pub unsafe fn IsBootableSystemStateBackedUp(&self) -> bool {
2700         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self)))
2701     }
AreComponentsSelected(&self) -> bool2702     pub unsafe fn AreComponentsSelected(&self) -> bool {
2703         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self)))
2704     }
GetBackupType(&self) -> VSS_BACKUP_TYPE2705     pub unsafe fn GetBackupType(&self) -> VSS_BACKUP_TYPE {
2706         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self)))
2707     }
GetRestoreType(&self) -> VSS_RESTORE_TYPE2708     pub unsafe fn GetRestoreType(&self) -> VSS_RESTORE_TYPE {
2709         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self)))
2710     }
SetWriterFailure(&self, hr: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<()>2711     pub unsafe fn SetWriterFailure(&self, hr: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<()> {
2712         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(hr)).ok()
2713     }
IsPartialFileSupportEnabled(&self) -> bool2714     pub unsafe fn IsPartialFileSupportEnabled(&self) -> bool {
2715         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self)))
2716     }
InstallAlternateWriter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idwriter: Param0, clsid: Param1) -> ::windows::runtime::Result<()>2717     pub unsafe fn InstallAlternateWriter<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::GUID>>(&self, idwriter: Param0, clsid: Param1) -> ::windows::runtime::Result<()> {
2718         (::windows::runtime::Interface::vtable(self).20)(::std::mem::transmute_copy(self), idwriter.into_param().abi(), clsid.into_param().abi()).ok()
2719     }
GetIdentityInformation(&self) -> *mut IVssExamineWriterMetadata2720     pub unsafe fn GetIdentityInformation(&self) -> *mut IVssExamineWriterMetadata {
2721         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).21)(::std::mem::transmute_copy(self)))
2722     }
2723     #[cfg(feature = "Win32_Foundation")]
SetWriterFailureEx<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: Param2) -> ::windows::runtime::Result<()>2724     pub unsafe fn SetWriterFailureEx<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::PWSTR>>(&self, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: Param2) -> ::windows::runtime::Result<()> {
2725         (::windows::runtime::Interface::vtable(self).22)(::std::mem::transmute_copy(self), ::std::mem::transmute(hr), ::std::mem::transmute(hrapplication), wszapplicationmessage.into_param().abi()).ok()
2726     }
GetSessionId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2727     pub unsafe fn GetSessionId(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2728         let mut result__: <::windows::runtime::GUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2729         (::windows::runtime::Interface::vtable(self).23)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2730     }
IsWriterShuttingDown(&self) -> bool2731     pub unsafe fn IsWriterShuttingDown(&self) -> bool {
2732         ::std::mem::transmute((::windows::runtime::Interface::vtable(self).24)(::std::mem::transmute_copy(self)))
2733     }
2734 }
2735 unsafe impl ::windows::runtime::Interface for IVssWriterImpl {
2736     type Vtable = IVssWriterImpl_abi;
2737     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::zeroed();
2738 }
2739 impl ::std::convert::From<IVssWriterImpl> for ::windows::runtime::IUnknown {
from(value: IVssWriterImpl) -> Self2740     fn from(value: IVssWriterImpl) -> Self {
2741         unsafe { ::std::mem::transmute(value) }
2742     }
2743 }
2744 impl ::std::convert::From<&IVssWriterImpl> for ::windows::runtime::IUnknown {
from(value: &IVssWriterImpl) -> Self2745     fn from(value: &IVssWriterImpl) -> Self {
2746         ::std::convert::From::from(::std::clone::Clone::clone(value))
2747     }
2748 }
2749 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IVssWriterImpl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2750     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2751         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2752     }
2753 }
2754 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IVssWriterImpl {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2755     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2756         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2757     }
2758 }
2759 #[repr(C)]
2760 #[doc(hidden)]
2761 pub struct IVssWriterImpl_abi(
2762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2765     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, writerid: ::windows::runtime::GUID, wszwritername: super::super::Foundation::PWSTR, wszwriterinstancename: super::super::Foundation::PWSTR, dwmajorversion: u32, dwminorversion: u32, ut: VSS_USAGE_TYPE, st: VSS_SOURCE_TYPE, nlevel: VSS_APPLICATION_LEVEL, dwtimeout: u32, aws: VSS_ALTERNATE_WRITER_STATE, biothrottlingonly: u8) -> ::windows::runtime::HRESULT,
2766     #[cfg(not(feature = "Win32_Foundation"))] usize,
2767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwsubscribetimeout: u32, dweventflags: u32) -> ::windows::runtime::HRESULT,
2768     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2769     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr),
2770     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut super::super::Foundation::PWSTR,
2771     #[cfg(not(feature = "Win32_Foundation"))] usize,
2772     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2773     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszoriginalvolume: super::super::Foundation::PWSTR, ppwszsnapshotdevice: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2774     #[cfg(not(feature = "Win32_Foundation"))] usize,
2775     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID),
2776     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> i32,
2777     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> VSS_APPLICATION_LEVEL,
2778     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, wszpath: super::super::Foundation::PWSTR) -> bool,
2779     #[cfg(not(feature = "Win32_Foundation"))] usize,
2780     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> bool,
2781     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> bool,
2782     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> VSS_BACKUP_TYPE,
2783     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> VSS_RESTORE_TYPE,
2784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hr: ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
2785     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> bool,
2786     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idwriter: ::windows::runtime::GUID, clsid: ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2787     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> *mut IVssExamineWriterMetadata,
2788     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hr: ::windows::runtime::HRESULT, hrapplication: ::windows::runtime::HRESULT, wszapplicationmessage: super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2789     #[cfg(not(feature = "Win32_Foundation"))] usize,
2790     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, idsession: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> bool,
2792 );
2793 pub const VSSCoordinator: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3849956191, 7364, 17588, [190, 217, 222, 9, 145, 255, 6, 35]);
2794 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2795 #[repr(transparent)]
2796 pub struct VSS_ALTERNATE_WRITER_STATE(pub i32);
2797 pub const VSS_AWS_UNDEFINED: VSS_ALTERNATE_WRITER_STATE = VSS_ALTERNATE_WRITER_STATE(0i32);
2798 pub const VSS_AWS_NO_ALTERNATE_WRITER: VSS_ALTERNATE_WRITER_STATE = VSS_ALTERNATE_WRITER_STATE(1i32);
2799 pub const VSS_AWS_ALTERNATE_WRITER_EXISTS: VSS_ALTERNATE_WRITER_STATE = VSS_ALTERNATE_WRITER_STATE(2i32);
2800 pub const VSS_AWS_THIS_IS_ALTERNATE_WRITER: VSS_ALTERNATE_WRITER_STATE = VSS_ALTERNATE_WRITER_STATE(3i32);
2801 impl ::std::convert::From<i32> for VSS_ALTERNATE_WRITER_STATE {
from(value: i32) -> Self2802     fn from(value: i32) -> Self {
2803         Self(value)
2804     }
2805 }
2806 unsafe impl ::windows::runtime::Abi for VSS_ALTERNATE_WRITER_STATE {
2807     type Abi = Self;
2808     type DefaultType = Self;
2809 }
2810 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2811 #[repr(transparent)]
2812 pub struct VSS_APPLICATION_LEVEL(pub i32);
2813 pub const VSS_APP_UNKNOWN: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(0i32);
2814 pub const VSS_APP_SYSTEM: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(1i32);
2815 pub const VSS_APP_BACK_END: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(2i32);
2816 pub const VSS_APP_FRONT_END: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(3i32);
2817 pub const VSS_APP_SYSTEM_RM: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(4i32);
2818 pub const VSS_APP_AUTO: VSS_APPLICATION_LEVEL = VSS_APPLICATION_LEVEL(-1i32);
2819 impl ::std::convert::From<i32> for VSS_APPLICATION_LEVEL {
from(value: i32) -> Self2820     fn from(value: i32) -> Self {
2821         Self(value)
2822     }
2823 }
2824 unsafe impl ::windows::runtime::Abi for VSS_APPLICATION_LEVEL {
2825     type Abi = Self;
2826     type DefaultType = Self;
2827 }
2828 pub const VSS_ASSOC_NO_MAX_SPACE: i32 = -1i32;
2829 pub const VSS_ASSOC_REMOVE: u32 = 0u32;
2830 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2831 #[repr(transparent)]
2832 pub struct VSS_BACKUP_SCHEMA(pub i32);
2833 pub const VSS_BS_UNDEFINED: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(0i32);
2834 pub const VSS_BS_DIFFERENTIAL: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(1i32);
2835 pub const VSS_BS_INCREMENTAL: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(2i32);
2836 pub const VSS_BS_EXCLUSIVE_INCREMENTAL_DIFFERENTIAL: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(4i32);
2837 pub const VSS_BS_LOG: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(8i32);
2838 pub const VSS_BS_COPY: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(16i32);
2839 pub const VSS_BS_TIMESTAMPED: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(32i32);
2840 pub const VSS_BS_LAST_MODIFY: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(64i32);
2841 pub const VSS_BS_LSN: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(128i32);
2842 pub const VSS_BS_WRITER_SUPPORTS_NEW_TARGET: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(256i32);
2843 pub const VSS_BS_WRITER_SUPPORTS_RESTORE_WITH_MOVE: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(512i32);
2844 pub const VSS_BS_INDEPENDENT_SYSTEM_STATE: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(1024i32);
2845 pub const VSS_BS_ROLLFORWARD_RESTORE: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(4096i32);
2846 pub const VSS_BS_RESTORE_RENAME: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(8192i32);
2847 pub const VSS_BS_AUTHORITATIVE_RESTORE: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(16384i32);
2848 pub const VSS_BS_WRITER_SUPPORTS_PARALLEL_RESTORES: VSS_BACKUP_SCHEMA = VSS_BACKUP_SCHEMA(32768i32);
2849 impl ::std::convert::From<i32> for VSS_BACKUP_SCHEMA {
from(value: i32) -> Self2850     fn from(value: i32) -> Self {
2851         Self(value)
2852     }
2853 }
2854 unsafe impl ::windows::runtime::Abi for VSS_BACKUP_SCHEMA {
2855     type Abi = Self;
2856     type DefaultType = Self;
2857 }
2858 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2859 #[repr(transparent)]
2860 pub struct VSS_BACKUP_TYPE(pub i32);
2861 pub const VSS_BT_UNDEFINED: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(0i32);
2862 pub const VSS_BT_FULL: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(1i32);
2863 pub const VSS_BT_INCREMENTAL: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(2i32);
2864 pub const VSS_BT_DIFFERENTIAL: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(3i32);
2865 pub const VSS_BT_LOG: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(4i32);
2866 pub const VSS_BT_COPY: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(5i32);
2867 pub const VSS_BT_OTHER: VSS_BACKUP_TYPE = VSS_BACKUP_TYPE(6i32);
2868 impl ::std::convert::From<i32> for VSS_BACKUP_TYPE {
from(value: i32) -> Self2869     fn from(value: i32) -> Self {
2870         Self(value)
2871     }
2872 }
2873 unsafe impl ::windows::runtime::Abi for VSS_BACKUP_TYPE {
2874     type Abi = Self;
2875     type DefaultType = Self;
2876 }
2877 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2878 #[repr(transparent)]
2879 pub struct VSS_COMPONENT_FLAGS(pub i32);
2880 pub const VSS_CF_BACKUP_RECOVERY: VSS_COMPONENT_FLAGS = VSS_COMPONENT_FLAGS(1i32);
2881 pub const VSS_CF_APP_ROLLBACK_RECOVERY: VSS_COMPONENT_FLAGS = VSS_COMPONENT_FLAGS(2i32);
2882 pub const VSS_CF_NOT_SYSTEM_STATE: VSS_COMPONENT_FLAGS = VSS_COMPONENT_FLAGS(4i32);
2883 impl ::std::convert::From<i32> for VSS_COMPONENT_FLAGS {
from(value: i32) -> Self2884     fn from(value: i32) -> Self {
2885         Self(value)
2886     }
2887 }
2888 unsafe impl ::windows::runtime::Abi for VSS_COMPONENT_FLAGS {
2889     type Abi = Self;
2890     type DefaultType = Self;
2891 }
2892 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
2893 #[repr(transparent)]
2894 pub struct VSS_COMPONENT_TYPE(pub i32);
2895 pub const VSS_CT_UNDEFINED: VSS_COMPONENT_TYPE = VSS_COMPONENT_TYPE(0i32);
2896 pub const VSS_CT_DATABASE: VSS_COMPONENT_TYPE = VSS_COMPONENT_TYPE(1i32);
2897 pub const VSS_CT_FILEGROUP: VSS_COMPONENT_TYPE = VSS_COMPONENT_TYPE(2i32);
2898 impl ::std::convert::From<i32> for VSS_COMPONENT_TYPE {
from(value: i32) -> Self2899     fn from(value: i32) -> Self {
2900         Self(value)
2901     }
2902 }
2903 unsafe impl ::windows::runtime::Abi for VSS_COMPONENT_TYPE {
2904     type Abi = Self;
2905     type DefaultType = Self;
2906 }
2907 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2908 #[repr(C)]
2909 pub struct VSS_DIFF_AREA_PROP {
2910     pub m_pwszVolumeName: *mut u16,
2911     pub m_pwszDiffAreaVolumeName: *mut u16,
2912     pub m_llMaximumDiffSpace: i64,
2913     pub m_llAllocatedDiffSpace: i64,
2914     pub m_llUsedDiffSpace: i64,
2915 }
2916 impl VSS_DIFF_AREA_PROP {}
2917 impl ::std::default::Default for VSS_DIFF_AREA_PROP {
default() -> Self2918     fn default() -> Self {
2919         unsafe { ::std::mem::zeroed() }
2920     }
2921 }
2922 impl ::std::fmt::Debug for VSS_DIFF_AREA_PROP {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2923     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2924         fmt.debug_struct("VSS_DIFF_AREA_PROP")
2925             .field("m_pwszVolumeName", &self.m_pwszVolumeName)
2926             .field("m_pwszDiffAreaVolumeName", &self.m_pwszDiffAreaVolumeName)
2927             .field("m_llMaximumDiffSpace", &self.m_llMaximumDiffSpace)
2928             .field("m_llAllocatedDiffSpace", &self.m_llAllocatedDiffSpace)
2929             .field("m_llUsedDiffSpace", &self.m_llUsedDiffSpace)
2930             .finish()
2931     }
2932 }
2933 impl ::std::cmp::PartialEq for VSS_DIFF_AREA_PROP {
eq(&self, other: &Self) -> bool2934     fn eq(&self, other: &Self) -> bool {
2935         self.m_pwszVolumeName == other.m_pwszVolumeName && self.m_pwszDiffAreaVolumeName == other.m_pwszDiffAreaVolumeName && self.m_llMaximumDiffSpace == other.m_llMaximumDiffSpace && self.m_llAllocatedDiffSpace == other.m_llAllocatedDiffSpace && self.m_llUsedDiffSpace == other.m_llUsedDiffSpace
2936     }
2937 }
2938 impl ::std::cmp::Eq for VSS_DIFF_AREA_PROP {}
2939 unsafe impl ::windows::runtime::Abi for VSS_DIFF_AREA_PROP {
2940     type Abi = Self;
2941     type DefaultType = Self;
2942 }
2943 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2944 #[repr(C)]
2945 pub struct VSS_DIFF_VOLUME_PROP {
2946     pub m_pwszVolumeName: *mut u16,
2947     pub m_pwszVolumeDisplayName: *mut u16,
2948     pub m_llVolumeFreeSpace: i64,
2949     pub m_llVolumeTotalSpace: i64,
2950 }
2951 impl VSS_DIFF_VOLUME_PROP {}
2952 impl ::std::default::Default for VSS_DIFF_VOLUME_PROP {
default() -> Self2953     fn default() -> Self {
2954         unsafe { ::std::mem::zeroed() }
2955     }
2956 }
2957 impl ::std::fmt::Debug for VSS_DIFF_VOLUME_PROP {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result2958     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2959         fmt.debug_struct("VSS_DIFF_VOLUME_PROP").field("m_pwszVolumeName", &self.m_pwszVolumeName).field("m_pwszVolumeDisplayName", &self.m_pwszVolumeDisplayName).field("m_llVolumeFreeSpace", &self.m_llVolumeFreeSpace).field("m_llVolumeTotalSpace", &self.m_llVolumeTotalSpace).finish()
2960     }
2961 }
2962 impl ::std::cmp::PartialEq for VSS_DIFF_VOLUME_PROP {
eq(&self, other: &Self) -> bool2963     fn eq(&self, other: &Self) -> bool {
2964         self.m_pwszVolumeName == other.m_pwszVolumeName && self.m_pwszVolumeDisplayName == other.m_pwszVolumeDisplayName && self.m_llVolumeFreeSpace == other.m_llVolumeFreeSpace && self.m_llVolumeTotalSpace == other.m_llVolumeTotalSpace
2965     }
2966 }
2967 impl ::std::cmp::Eq for VSS_DIFF_VOLUME_PROP {}
2968 unsafe impl ::windows::runtime::Abi for VSS_DIFF_VOLUME_PROP {
2969     type Abi = Self;
2970     type DefaultType = Self;
2971 }
2972 pub const VSS_E_ASRERROR_CRITICAL_DISKS_TOO_SMALL: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212280i32 as _);
2973 pub const VSS_E_ASRERROR_CRITICAL_DISK_CANNOT_BE_EXCLUDED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212267i32 as _);
2974 pub const VSS_E_ASRERROR_DATADISK_RDISK0: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212282i32 as _);
2975 pub const VSS_E_ASRERROR_DISK_ASSIGNMENT_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212287i32 as _);
2976 pub const VSS_E_ASRERROR_DISK_RECREATION_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212286i32 as _);
2977 pub const VSS_E_ASRERROR_DYNAMIC_VHD_NOT_SUPPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212278i32 as _);
2978 pub const VSS_E_ASRERROR_FIXED_PHYSICAL_DISK_AVAILABLE_AFTER_DISK_EXCLUSION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212268i32 as _);
2979 pub const VSS_E_ASRERROR_MISSING_DYNDISK: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212284i32 as _);
2980 pub const VSS_E_ASRERROR_NO_ARCPATH: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212285i32 as _);
2981 pub const VSS_E_ASRERROR_NO_PHYSICAL_DISK_AVAILABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212269i32 as _);
2982 pub const VSS_E_ASRERROR_RDISK0_TOOSMALL: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212281i32 as _);
2983 pub const VSS_E_ASRERROR_RDISK_FOR_SYSTEM_DISK_NOT_FOUND: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212270i32 as _);
2984 pub const VSS_E_ASRERROR_SHARED_CRIDISK: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212283i32 as _);
2985 pub const VSS_E_ASRERROR_SYSTEM_PARTITION_HIDDEN: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212266i32 as _);
2986 pub const VSS_E_AUTORECOVERY_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212293i32 as _);
2987 pub const VSS_E_BAD_STATE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212543i32 as _);
2988 pub const VSS_E_BREAK_REVERT_ID_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212298i32 as _);
2989 pub const VSS_E_CANNOT_REVERT_DISKID: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212290i32 as _);
2990 pub const VSS_E_CLUSTER_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212288i32 as _);
2991 pub const VSS_E_CLUSTER_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212498i32 as _);
2992 pub const VSS_E_CORRUPT_XML_DOCUMENT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212528i32 as _);
2993 pub const VSS_E_CRITICAL_VOLUME_ON_INVALID_DISK: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212271i32 as _);
2994 pub const VSS_E_DYNAMIC_DISK_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212292i32 as _);
2995 pub const VSS_E_FLUSH_WRITES_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212525i32 as _);
2996 pub const VSS_E_FSS_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212265i32 as _);
2997 pub const VSS_E_HOLD_WRITES_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212524i32 as _);
2998 pub const VSS_E_INSUFFICIENT_STORAGE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212513i32 as _);
2999 pub const VSS_E_INVALID_XML_DOCUMENT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212527i32 as _);
3000 pub const VSS_E_LEGACY_PROVIDER: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212297i32 as _);
3001 pub const VSS_E_MAXIMUM_DIFFAREA_ASSOCIATIONS_REACHED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212514i32 as _);
3002 pub const VSS_E_MAXIMUM_NUMBER_OF_REMOTE_MACHINES_REACHED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212510i32 as _);
3003 pub const VSS_E_MAXIMUM_NUMBER_OF_SNAPSHOTS_REACHED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212521i32 as _);
3004 pub const VSS_E_MAXIMUM_NUMBER_OF_VOLUMES_REACHED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212526i32 as _);
3005 pub const VSS_E_MISSING_DISK: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212296i32 as _);
3006 pub const VSS_E_MISSING_HIDDEN_VOLUME: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212295i32 as _);
3007 pub const VSS_E_MISSING_VOLUME: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212294i32 as _);
3008 pub const VSS_E_NESTED_VOLUME_LIMIT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212500i32 as _);
3009 pub const VSS_E_NONTRANSPORTABLE_BCD: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212291i32 as _);
3010 pub const VSS_E_NOT_SUPPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212497i32 as _);
3011 pub const VSS_E_NO_SNAPSHOTS_IMPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212512i32 as _);
3012 pub const VSS_E_OBJECT_ALREADY_EXISTS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212531i32 as _);
3013 pub const VSS_E_OBJECT_NOT_FOUND: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212536i32 as _);
3014 pub const VSS_E_PROVIDER_ALREADY_REGISTERED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212541i32 as _);
3015 pub const VSS_E_PROVIDER_IN_USE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212537i32 as _);
3016 pub const VSS_E_PROVIDER_NOT_REGISTERED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212540i32 as _);
3017 pub const VSS_E_PROVIDER_VETO: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212538i32 as _);
3018 pub const VSS_E_REBOOT_REQUIRED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212505i32 as _);
3019 pub const VSS_E_REMOTE_SERVER_UNAVAILABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212509i32 as _);
3020 pub const VSS_E_REMOTE_SERVER_UNSUPPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212508i32 as _);
3021 pub const VSS_E_RESYNC_IN_PROGRESS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212289i32 as _);
3022 pub const VSS_E_REVERT_IN_PROGRESS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212507i32 as _);
3023 pub const VSS_E_REVERT_VOLUME_LOST: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212506i32 as _);
3024 pub const VSS_E_SNAPSHOT_NOT_IN_SET: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212501i32 as _);
3025 pub const VSS_E_SNAPSHOT_SET_IN_PROGRESS: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212522i32 as _);
3026 pub const VSS_E_SOME_SNAPSHOTS_NOT_IMPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212511i32 as _);
3027 pub const VSS_E_TRANSACTION_FREEZE_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212504i32 as _);
3028 pub const VSS_E_TRANSACTION_THAW_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212503i32 as _);
3029 pub const VSS_E_UNEXPECTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212542i32 as _);
3030 pub const VSS_E_UNEXPECTED_PROVIDER_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212529i32 as _);
3031 pub const VSS_E_UNEXPECTED_WRITER_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212523i32 as _);
3032 pub const VSS_E_UNSELECTED_VOLUME: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212502i32 as _);
3033 pub const VSS_E_UNSUPPORTED_CONTEXT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212517i32 as _);
3034 pub const VSS_E_VOLUME_IN_USE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212515i32 as _);
3035 pub const VSS_E_VOLUME_NOT_LOCAL: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212499i32 as _);
3036 pub const VSS_E_VOLUME_NOT_SUPPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212532i32 as _);
3037 pub const VSS_E_VOLUME_NOT_SUPPORTED_BY_PROVIDER: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212530i32 as _);
3038 pub const VSS_E_WRITERERROR_INCONSISTENTSNAPSHOT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212304i32 as _);
3039 pub const VSS_E_WRITERERROR_NONRETRYABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212300i32 as _);
3040 pub const VSS_E_WRITERERROR_OUTOFRESOURCES: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212303i32 as _);
3041 pub const VSS_E_WRITERERROR_PARTIAL_FAILURE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212490i32 as _);
3042 pub const VSS_E_WRITERERROR_RECOVERY_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212299i32 as _);
3043 pub const VSS_E_WRITERERROR_RETRYABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212301i32 as _);
3044 pub const VSS_E_WRITERERROR_TIMEOUT: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212302i32 as _);
3045 pub const VSS_E_WRITER_ALREADY_SUBSCRIBED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212518i32 as _);
3046 pub const VSS_E_WRITER_INFRASTRUCTURE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212520i32 as _);
3047 pub const VSS_E_WRITER_NOT_RESPONDING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212519i32 as _);
3048 pub const VSS_E_WRITER_STATUS_NOT_AVAILABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2147212279i32 as _);
3049 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3050 #[repr(transparent)]
3051 pub struct VSS_FILE_RESTORE_STATUS(pub i32);
3052 pub const VSS_RS_UNDEFINED: VSS_FILE_RESTORE_STATUS = VSS_FILE_RESTORE_STATUS(0i32);
3053 pub const VSS_RS_NONE: VSS_FILE_RESTORE_STATUS = VSS_FILE_RESTORE_STATUS(1i32);
3054 pub const VSS_RS_ALL: VSS_FILE_RESTORE_STATUS = VSS_FILE_RESTORE_STATUS(2i32);
3055 pub const VSS_RS_FAILED: VSS_FILE_RESTORE_STATUS = VSS_FILE_RESTORE_STATUS(3i32);
3056 impl ::std::convert::From<i32> for VSS_FILE_RESTORE_STATUS {
from(value: i32) -> Self3057     fn from(value: i32) -> Self {
3058         Self(value)
3059     }
3060 }
3061 unsafe impl ::windows::runtime::Abi for VSS_FILE_RESTORE_STATUS {
3062     type Abi = Self;
3063     type DefaultType = Self;
3064 }
3065 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3066 #[repr(transparent)]
3067 pub struct VSS_FILE_SPEC_BACKUP_TYPE(pub i32);
3068 pub const VSS_FSBT_FULL_BACKUP_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(1i32);
3069 pub const VSS_FSBT_DIFFERENTIAL_BACKUP_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(2i32);
3070 pub const VSS_FSBT_INCREMENTAL_BACKUP_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(4i32);
3071 pub const VSS_FSBT_LOG_BACKUP_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(8i32);
3072 pub const VSS_FSBT_FULL_SNAPSHOT_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(256i32);
3073 pub const VSS_FSBT_DIFFERENTIAL_SNAPSHOT_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(512i32);
3074 pub const VSS_FSBT_INCREMENTAL_SNAPSHOT_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(1024i32);
3075 pub const VSS_FSBT_LOG_SNAPSHOT_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(2048i32);
3076 pub const VSS_FSBT_CREATED_DURING_BACKUP: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(65536i32);
3077 pub const VSS_FSBT_ALL_BACKUP_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(15i32);
3078 pub const VSS_FSBT_ALL_SNAPSHOT_REQUIRED: VSS_FILE_SPEC_BACKUP_TYPE = VSS_FILE_SPEC_BACKUP_TYPE(3840i32);
3079 impl ::std::convert::From<i32> for VSS_FILE_SPEC_BACKUP_TYPE {
from(value: i32) -> Self3080     fn from(value: i32) -> Self {
3081         Self(value)
3082     }
3083 }
3084 unsafe impl ::windows::runtime::Abi for VSS_FILE_SPEC_BACKUP_TYPE {
3085     type Abi = Self;
3086     type DefaultType = Self;
3087 }
3088 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3089 #[repr(transparent)]
3090 pub struct VSS_HARDWARE_OPTIONS(pub i32);
3091 pub const VSS_BREAKEX_FLAG_MASK_LUNS: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(1i32);
3092 pub const VSS_BREAKEX_FLAG_MAKE_READ_WRITE: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(2i32);
3093 pub const VSS_BREAKEX_FLAG_REVERT_IDENTITY_ALL: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(4i32);
3094 pub const VSS_BREAKEX_FLAG_REVERT_IDENTITY_NONE: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(8i32);
3095 pub const VSS_ONLUNSTATECHANGE_NOTIFY_READ_WRITE: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(256i32);
3096 pub const VSS_ONLUNSTATECHANGE_NOTIFY_LUN_PRE_RECOVERY: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(512i32);
3097 pub const VSS_ONLUNSTATECHANGE_NOTIFY_LUN_POST_RECOVERY: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(1024i32);
3098 pub const VSS_ONLUNSTATECHANGE_DO_MASK_LUNS: VSS_HARDWARE_OPTIONS = VSS_HARDWARE_OPTIONS(2048i32);
3099 impl ::std::convert::From<i32> for VSS_HARDWARE_OPTIONS {
from(value: i32) -> Self3100     fn from(value: i32) -> Self {
3101         Self(value)
3102     }
3103 }
3104 unsafe impl ::windows::runtime::Abi for VSS_HARDWARE_OPTIONS {
3105     type Abi = Self;
3106     type DefaultType = Self;
3107 }
3108 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3109 #[repr(C)]
3110 pub struct VSS_MGMT_OBJECT_PROP {
3111     pub Type: VSS_MGMT_OBJECT_TYPE,
3112     pub Obj: VSS_MGMT_OBJECT_UNION,
3113 }
3114 impl VSS_MGMT_OBJECT_PROP {}
3115 impl ::std::default::Default for VSS_MGMT_OBJECT_PROP {
default() -> Self3116     fn default() -> Self {
3117         unsafe { ::std::mem::zeroed() }
3118     }
3119 }
3120 impl ::std::cmp::PartialEq for VSS_MGMT_OBJECT_PROP {
eq(&self, _other: &Self) -> bool3121     fn eq(&self, _other: &Self) -> bool {
3122         unimplemented!()
3123     }
3124 }
3125 impl ::std::cmp::Eq for VSS_MGMT_OBJECT_PROP {}
3126 unsafe impl ::windows::runtime::Abi for VSS_MGMT_OBJECT_PROP {
3127     type Abi = Self;
3128     type DefaultType = Self;
3129 }
3130 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3131 #[repr(transparent)]
3132 pub struct VSS_MGMT_OBJECT_TYPE(pub i32);
3133 pub const VSS_MGMT_OBJECT_UNKNOWN: VSS_MGMT_OBJECT_TYPE = VSS_MGMT_OBJECT_TYPE(0i32);
3134 pub const VSS_MGMT_OBJECT_VOLUME: VSS_MGMT_OBJECT_TYPE = VSS_MGMT_OBJECT_TYPE(1i32);
3135 pub const VSS_MGMT_OBJECT_DIFF_VOLUME: VSS_MGMT_OBJECT_TYPE = VSS_MGMT_OBJECT_TYPE(2i32);
3136 pub const VSS_MGMT_OBJECT_DIFF_AREA: VSS_MGMT_OBJECT_TYPE = VSS_MGMT_OBJECT_TYPE(3i32);
3137 impl ::std::convert::From<i32> for VSS_MGMT_OBJECT_TYPE {
from(value: i32) -> Self3138     fn from(value: i32) -> Self {
3139         Self(value)
3140     }
3141 }
3142 unsafe impl ::windows::runtime::Abi for VSS_MGMT_OBJECT_TYPE {
3143     type Abi = Self;
3144     type DefaultType = Self;
3145 }
3146 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3147 #[repr(C)]
3148 pub union VSS_MGMT_OBJECT_UNION {
3149     pub Vol: VSS_VOLUME_PROP,
3150     pub DiffVol: VSS_DIFF_VOLUME_PROP,
3151     pub DiffArea: VSS_DIFF_AREA_PROP,
3152 }
3153 impl VSS_MGMT_OBJECT_UNION {}
3154 impl ::std::default::Default for VSS_MGMT_OBJECT_UNION {
default() -> Self3155     fn default() -> Self {
3156         unsafe { ::std::mem::zeroed() }
3157     }
3158 }
3159 impl ::std::cmp::PartialEq for VSS_MGMT_OBJECT_UNION {
eq(&self, _other: &Self) -> bool3160     fn eq(&self, _other: &Self) -> bool {
3161         unimplemented!()
3162     }
3163 }
3164 impl ::std::cmp::Eq for VSS_MGMT_OBJECT_UNION {}
3165 unsafe impl ::windows::runtime::Abi for VSS_MGMT_OBJECT_UNION {
3166     type Abi = Self;
3167     type DefaultType = Self;
3168 }
3169 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3170 #[repr(C)]
3171 pub struct VSS_OBJECT_PROP {
3172     pub Type: VSS_OBJECT_TYPE,
3173     pub Obj: VSS_OBJECT_UNION,
3174 }
3175 impl VSS_OBJECT_PROP {}
3176 impl ::std::default::Default for VSS_OBJECT_PROP {
default() -> Self3177     fn default() -> Self {
3178         unsafe { ::std::mem::zeroed() }
3179     }
3180 }
3181 impl ::std::cmp::PartialEq for VSS_OBJECT_PROP {
eq(&self, _other: &Self) -> bool3182     fn eq(&self, _other: &Self) -> bool {
3183         unimplemented!()
3184     }
3185 }
3186 impl ::std::cmp::Eq for VSS_OBJECT_PROP {}
3187 unsafe impl ::windows::runtime::Abi for VSS_OBJECT_PROP {
3188     type Abi = Self;
3189     type DefaultType = Self;
3190 }
3191 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3192 #[repr(transparent)]
3193 pub struct VSS_OBJECT_TYPE(pub i32);
3194 pub const VSS_OBJECT_UNKNOWN: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(0i32);
3195 pub const VSS_OBJECT_NONE: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(1i32);
3196 pub const VSS_OBJECT_SNAPSHOT_SET: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(2i32);
3197 pub const VSS_OBJECT_SNAPSHOT: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(3i32);
3198 pub const VSS_OBJECT_PROVIDER: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(4i32);
3199 pub const VSS_OBJECT_TYPE_COUNT: VSS_OBJECT_TYPE = VSS_OBJECT_TYPE(5i32);
3200 impl ::std::convert::From<i32> for VSS_OBJECT_TYPE {
from(value: i32) -> Self3201     fn from(value: i32) -> Self {
3202         Self(value)
3203     }
3204 }
3205 unsafe impl ::windows::runtime::Abi for VSS_OBJECT_TYPE {
3206     type Abi = Self;
3207     type DefaultType = Self;
3208 }
3209 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3210 #[repr(C)]
3211 pub union VSS_OBJECT_UNION {
3212     pub Snap: VSS_SNAPSHOT_PROP,
3213     pub Prov: VSS_PROVIDER_PROP,
3214 }
3215 impl VSS_OBJECT_UNION {}
3216 impl ::std::default::Default for VSS_OBJECT_UNION {
default() -> Self3217     fn default() -> Self {
3218         unsafe { ::std::mem::zeroed() }
3219     }
3220 }
3221 impl ::std::cmp::PartialEq for VSS_OBJECT_UNION {
eq(&self, _other: &Self) -> bool3222     fn eq(&self, _other: &Self) -> bool {
3223         unimplemented!()
3224     }
3225 }
3226 impl ::std::cmp::Eq for VSS_OBJECT_UNION {}
3227 unsafe impl ::windows::runtime::Abi for VSS_OBJECT_UNION {
3228     type Abi = Self;
3229     type DefaultType = Self;
3230 }
3231 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3232 #[repr(transparent)]
3233 pub struct VSS_PROTECTION_FAULT(pub i32);
3234 pub const VSS_PROTECTION_FAULT_NONE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(0i32);
3235 pub const VSS_PROTECTION_FAULT_DIFF_AREA_MISSING: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(1i32);
3236 pub const VSS_PROTECTION_FAULT_IO_FAILURE_DURING_ONLINE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(2i32);
3237 pub const VSS_PROTECTION_FAULT_META_DATA_CORRUPTION: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(3i32);
3238 pub const VSS_PROTECTION_FAULT_MEMORY_ALLOCATION_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(4i32);
3239 pub const VSS_PROTECTION_FAULT_MAPPED_MEMORY_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(5i32);
3240 pub const VSS_PROTECTION_FAULT_COW_READ_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(6i32);
3241 pub const VSS_PROTECTION_FAULT_COW_WRITE_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(7i32);
3242 pub const VSS_PROTECTION_FAULT_DIFF_AREA_FULL: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(8i32);
3243 pub const VSS_PROTECTION_FAULT_GROW_TOO_SLOW: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(9i32);
3244 pub const VSS_PROTECTION_FAULT_GROW_FAILED: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(10i32);
3245 pub const VSS_PROTECTION_FAULT_DESTROY_ALL_SNAPSHOTS: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(11i32);
3246 pub const VSS_PROTECTION_FAULT_FILE_SYSTEM_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(12i32);
3247 pub const VSS_PROTECTION_FAULT_IO_FAILURE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(13i32);
3248 pub const VSS_PROTECTION_FAULT_DIFF_AREA_REMOVED: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(14i32);
3249 pub const VSS_PROTECTION_FAULT_EXTERNAL_WRITER_TO_DIFF_AREA: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(15i32);
3250 pub const VSS_PROTECTION_FAULT_MOUNT_DURING_CLUSTER_OFFLINE: VSS_PROTECTION_FAULT = VSS_PROTECTION_FAULT(16i32);
3251 impl ::std::convert::From<i32> for VSS_PROTECTION_FAULT {
from(value: i32) -> Self3252     fn from(value: i32) -> Self {
3253         Self(value)
3254     }
3255 }
3256 unsafe impl ::windows::runtime::Abi for VSS_PROTECTION_FAULT {
3257     type Abi = Self;
3258     type DefaultType = Self;
3259 }
3260 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3261 #[repr(transparent)]
3262 pub struct VSS_PROTECTION_LEVEL(pub i32);
3263 pub const VSS_PROTECTION_LEVEL_ORIGINAL_VOLUME: VSS_PROTECTION_LEVEL = VSS_PROTECTION_LEVEL(0i32);
3264 pub const VSS_PROTECTION_LEVEL_SNAPSHOT: VSS_PROTECTION_LEVEL = VSS_PROTECTION_LEVEL(1i32);
3265 impl ::std::convert::From<i32> for VSS_PROTECTION_LEVEL {
from(value: i32) -> Self3266     fn from(value: i32) -> Self {
3267         Self(value)
3268     }
3269 }
3270 unsafe impl ::windows::runtime::Abi for VSS_PROTECTION_LEVEL {
3271     type Abi = Self;
3272     type DefaultType = Self;
3273 }
3274 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3275 #[repr(transparent)]
3276 pub struct VSS_PROVIDER_CAPABILITIES(pub i32);
3277 pub const VSS_PRV_CAPABILITY_LEGACY: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(1i32);
3278 pub const VSS_PRV_CAPABILITY_COMPLIANT: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(2i32);
3279 pub const VSS_PRV_CAPABILITY_LUN_REPOINT: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(4i32);
3280 pub const VSS_PRV_CAPABILITY_LUN_RESYNC: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(8i32);
3281 pub const VSS_PRV_CAPABILITY_OFFLINE_CREATION: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(16i32);
3282 pub const VSS_PRV_CAPABILITY_MULTIPLE_IMPORT: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(32i32);
3283 pub const VSS_PRV_CAPABILITY_RECYCLING: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(64i32);
3284 pub const VSS_PRV_CAPABILITY_PLEX: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(128i32);
3285 pub const VSS_PRV_CAPABILITY_DIFFERENTIAL: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(256i32);
3286 pub const VSS_PRV_CAPABILITY_CLUSTERED: VSS_PROVIDER_CAPABILITIES = VSS_PROVIDER_CAPABILITIES(512i32);
3287 impl ::std::convert::From<i32> for VSS_PROVIDER_CAPABILITIES {
from(value: i32) -> Self3288     fn from(value: i32) -> Self {
3289         Self(value)
3290     }
3291 }
3292 unsafe impl ::windows::runtime::Abi for VSS_PROVIDER_CAPABILITIES {
3293     type Abi = Self;
3294     type DefaultType = Self;
3295 }
3296 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3297 #[repr(C)]
3298 pub struct VSS_PROVIDER_PROP {
3299     pub m_ProviderId: ::windows::runtime::GUID,
3300     pub m_pwszProviderName: *mut u16,
3301     pub m_eProviderType: VSS_PROVIDER_TYPE,
3302     pub m_pwszProviderVersion: *mut u16,
3303     pub m_ProviderVersionId: ::windows::runtime::GUID,
3304     pub m_ClassId: ::windows::runtime::GUID,
3305 }
3306 impl VSS_PROVIDER_PROP {}
3307 impl ::std::default::Default for VSS_PROVIDER_PROP {
default() -> Self3308     fn default() -> Self {
3309         unsafe { ::std::mem::zeroed() }
3310     }
3311 }
3312 impl ::std::fmt::Debug for VSS_PROVIDER_PROP {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3313     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3314         fmt.debug_struct("VSS_PROVIDER_PROP")
3315             .field("m_ProviderId", &self.m_ProviderId)
3316             .field("m_pwszProviderName", &self.m_pwszProviderName)
3317             .field("m_eProviderType", &self.m_eProviderType)
3318             .field("m_pwszProviderVersion", &self.m_pwszProviderVersion)
3319             .field("m_ProviderVersionId", &self.m_ProviderVersionId)
3320             .field("m_ClassId", &self.m_ClassId)
3321             .finish()
3322     }
3323 }
3324 impl ::std::cmp::PartialEq for VSS_PROVIDER_PROP {
eq(&self, other: &Self) -> bool3325     fn eq(&self, other: &Self) -> bool {
3326         self.m_ProviderId == other.m_ProviderId && self.m_pwszProviderName == other.m_pwszProviderName && self.m_eProviderType == other.m_eProviderType && self.m_pwszProviderVersion == other.m_pwszProviderVersion && self.m_ProviderVersionId == other.m_ProviderVersionId && self.m_ClassId == other.m_ClassId
3327     }
3328 }
3329 impl ::std::cmp::Eq for VSS_PROVIDER_PROP {}
3330 unsafe impl ::windows::runtime::Abi for VSS_PROVIDER_PROP {
3331     type Abi = Self;
3332     type DefaultType = Self;
3333 }
3334 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3335 #[repr(transparent)]
3336 pub struct VSS_PROVIDER_TYPE(pub i32);
3337 pub const VSS_PROV_UNKNOWN: VSS_PROVIDER_TYPE = VSS_PROVIDER_TYPE(0i32);
3338 pub const VSS_PROV_SYSTEM: VSS_PROVIDER_TYPE = VSS_PROVIDER_TYPE(1i32);
3339 pub const VSS_PROV_SOFTWARE: VSS_PROVIDER_TYPE = VSS_PROVIDER_TYPE(2i32);
3340 pub const VSS_PROV_HARDWARE: VSS_PROVIDER_TYPE = VSS_PROVIDER_TYPE(3i32);
3341 pub const VSS_PROV_FILESHARE: VSS_PROVIDER_TYPE = VSS_PROVIDER_TYPE(4i32);
3342 impl ::std::convert::From<i32> for VSS_PROVIDER_TYPE {
from(value: i32) -> Self3343     fn from(value: i32) -> Self {
3344         Self(value)
3345     }
3346 }
3347 unsafe impl ::windows::runtime::Abi for VSS_PROVIDER_TYPE {
3348     type Abi = Self;
3349     type DefaultType = Self;
3350 }
3351 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3352 #[repr(transparent)]
3353 pub struct VSS_RECOVERY_OPTIONS(pub i32);
3354 pub const VSS_RECOVERY_REVERT_IDENTITY_ALL: VSS_RECOVERY_OPTIONS = VSS_RECOVERY_OPTIONS(256i32);
3355 pub const VSS_RECOVERY_NO_VOLUME_CHECK: VSS_RECOVERY_OPTIONS = VSS_RECOVERY_OPTIONS(512i32);
3356 impl ::std::convert::From<i32> for VSS_RECOVERY_OPTIONS {
from(value: i32) -> Self3357     fn from(value: i32) -> Self {
3358         Self(value)
3359     }
3360 }
3361 unsafe impl ::windows::runtime::Abi for VSS_RECOVERY_OPTIONS {
3362     type Abi = Self;
3363     type DefaultType = Self;
3364 }
3365 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3366 #[repr(transparent)]
3367 pub struct VSS_RESTOREMETHOD_ENUM(pub i32);
3368 pub const VSS_RME_UNDEFINED: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(0i32);
3369 pub const VSS_RME_RESTORE_IF_NOT_THERE: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(1i32);
3370 pub const VSS_RME_RESTORE_IF_CAN_REPLACE: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(2i32);
3371 pub const VSS_RME_STOP_RESTORE_START: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(3i32);
3372 pub const VSS_RME_RESTORE_TO_ALTERNATE_LOCATION: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(4i32);
3373 pub const VSS_RME_RESTORE_AT_REBOOT: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(5i32);
3374 pub const VSS_RME_RESTORE_AT_REBOOT_IF_CANNOT_REPLACE: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(6i32);
3375 pub const VSS_RME_CUSTOM: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(7i32);
3376 pub const VSS_RME_RESTORE_STOP_START: VSS_RESTOREMETHOD_ENUM = VSS_RESTOREMETHOD_ENUM(8i32);
3377 impl ::std::convert::From<i32> for VSS_RESTOREMETHOD_ENUM {
from(value: i32) -> Self3378     fn from(value: i32) -> Self {
3379         Self(value)
3380     }
3381 }
3382 unsafe impl ::windows::runtime::Abi for VSS_RESTOREMETHOD_ENUM {
3383     type Abi = Self;
3384     type DefaultType = Self;
3385 }
3386 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3387 #[repr(transparent)]
3388 pub struct VSS_RESTORE_TARGET(pub i32);
3389 pub const VSS_RT_UNDEFINED: VSS_RESTORE_TARGET = VSS_RESTORE_TARGET(0i32);
3390 pub const VSS_RT_ORIGINAL: VSS_RESTORE_TARGET = VSS_RESTORE_TARGET(1i32);
3391 pub const VSS_RT_ALTERNATE: VSS_RESTORE_TARGET = VSS_RESTORE_TARGET(2i32);
3392 pub const VSS_RT_DIRECTED: VSS_RESTORE_TARGET = VSS_RESTORE_TARGET(3i32);
3393 pub const VSS_RT_ORIGINAL_LOCATION: VSS_RESTORE_TARGET = VSS_RESTORE_TARGET(4i32);
3394 impl ::std::convert::From<i32> for VSS_RESTORE_TARGET {
from(value: i32) -> Self3395     fn from(value: i32) -> Self {
3396         Self(value)
3397     }
3398 }
3399 unsafe impl ::windows::runtime::Abi for VSS_RESTORE_TARGET {
3400     type Abi = Self;
3401     type DefaultType = Self;
3402 }
3403 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3404 #[repr(transparent)]
3405 pub struct VSS_RESTORE_TYPE(pub i32);
3406 pub const VSS_RTYPE_UNDEFINED: VSS_RESTORE_TYPE = VSS_RESTORE_TYPE(0i32);
3407 pub const VSS_RTYPE_BY_COPY: VSS_RESTORE_TYPE = VSS_RESTORE_TYPE(1i32);
3408 pub const VSS_RTYPE_IMPORT: VSS_RESTORE_TYPE = VSS_RESTORE_TYPE(2i32);
3409 pub const VSS_RTYPE_OTHER: VSS_RESTORE_TYPE = VSS_RESTORE_TYPE(3i32);
3410 impl ::std::convert::From<i32> for VSS_RESTORE_TYPE {
from(value: i32) -> Self3411     fn from(value: i32) -> Self {
3412         Self(value)
3413     }
3414 }
3415 unsafe impl ::windows::runtime::Abi for VSS_RESTORE_TYPE {
3416     type Abi = Self;
3417     type DefaultType = Self;
3418 }
3419 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3420 #[repr(transparent)]
3421 pub struct VSS_ROLLFORWARD_TYPE(pub i32);
3422 pub const VSS_RF_UNDEFINED: VSS_ROLLFORWARD_TYPE = VSS_ROLLFORWARD_TYPE(0i32);
3423 pub const VSS_RF_NONE: VSS_ROLLFORWARD_TYPE = VSS_ROLLFORWARD_TYPE(1i32);
3424 pub const VSS_RF_ALL: VSS_ROLLFORWARD_TYPE = VSS_ROLLFORWARD_TYPE(2i32);
3425 pub const VSS_RF_PARTIAL: VSS_ROLLFORWARD_TYPE = VSS_ROLLFORWARD_TYPE(3i32);
3426 impl ::std::convert::From<i32> for VSS_ROLLFORWARD_TYPE {
from(value: i32) -> Self3427     fn from(value: i32) -> Self {
3428         Self(value)
3429     }
3430 }
3431 unsafe impl ::windows::runtime::Abi for VSS_ROLLFORWARD_TYPE {
3432     type Abi = Self;
3433     type DefaultType = Self;
3434 }
3435 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3436 #[repr(transparent)]
3437 pub struct VSS_SNAPSHOT_COMPATIBILITY(pub i32);
3438 pub const VSS_SC_DISABLE_DEFRAG: VSS_SNAPSHOT_COMPATIBILITY = VSS_SNAPSHOT_COMPATIBILITY(1i32);
3439 pub const VSS_SC_DISABLE_CONTENTINDEX: VSS_SNAPSHOT_COMPATIBILITY = VSS_SNAPSHOT_COMPATIBILITY(2i32);
3440 impl ::std::convert::From<i32> for VSS_SNAPSHOT_COMPATIBILITY {
from(value: i32) -> Self3441     fn from(value: i32) -> Self {
3442         Self(value)
3443     }
3444 }
3445 unsafe impl ::windows::runtime::Abi for VSS_SNAPSHOT_COMPATIBILITY {
3446     type Abi = Self;
3447     type DefaultType = Self;
3448 }
3449 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3450 #[repr(transparent)]
3451 pub struct VSS_SNAPSHOT_CONTEXT(pub i32);
3452 pub const VSS_CTX_BACKUP: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(0i32);
3453 pub const VSS_CTX_FILE_SHARE_BACKUP: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(16i32);
3454 pub const VSS_CTX_NAS_ROLLBACK: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(25i32);
3455 pub const VSS_CTX_APP_ROLLBACK: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(9i32);
3456 pub const VSS_CTX_CLIENT_ACCESSIBLE: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(29i32);
3457 pub const VSS_CTX_CLIENT_ACCESSIBLE_WRITERS: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(13i32);
3458 pub const VSS_CTX_ALL: VSS_SNAPSHOT_CONTEXT = VSS_SNAPSHOT_CONTEXT(-1i32);
3459 impl ::std::convert::From<i32> for VSS_SNAPSHOT_CONTEXT {
from(value: i32) -> Self3460     fn from(value: i32) -> Self {
3461         Self(value)
3462     }
3463 }
3464 unsafe impl ::windows::runtime::Abi for VSS_SNAPSHOT_CONTEXT {
3465     type Abi = Self;
3466     type DefaultType = Self;
3467 }
3468 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3469 #[repr(C)]
3470 pub struct VSS_SNAPSHOT_PROP {
3471     pub m_SnapshotId: ::windows::runtime::GUID,
3472     pub m_SnapshotSetId: ::windows::runtime::GUID,
3473     pub m_lSnapshotsCount: i32,
3474     pub m_pwszSnapshotDeviceObject: *mut u16,
3475     pub m_pwszOriginalVolumeName: *mut u16,
3476     pub m_pwszOriginatingMachine: *mut u16,
3477     pub m_pwszServiceMachine: *mut u16,
3478     pub m_pwszExposedName: *mut u16,
3479     pub m_pwszExposedPath: *mut u16,
3480     pub m_ProviderId: ::windows::runtime::GUID,
3481     pub m_lSnapshotAttributes: i32,
3482     pub m_tsCreationTimestamp: i64,
3483     pub m_eStatus: VSS_SNAPSHOT_STATE,
3484 }
3485 impl VSS_SNAPSHOT_PROP {}
3486 impl ::std::default::Default for VSS_SNAPSHOT_PROP {
default() -> Self3487     fn default() -> Self {
3488         unsafe { ::std::mem::zeroed() }
3489     }
3490 }
3491 impl ::std::fmt::Debug for VSS_SNAPSHOT_PROP {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3492     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3493         fmt.debug_struct("VSS_SNAPSHOT_PROP")
3494             .field("m_SnapshotId", &self.m_SnapshotId)
3495             .field("m_SnapshotSetId", &self.m_SnapshotSetId)
3496             .field("m_lSnapshotsCount", &self.m_lSnapshotsCount)
3497             .field("m_pwszSnapshotDeviceObject", &self.m_pwszSnapshotDeviceObject)
3498             .field("m_pwszOriginalVolumeName", &self.m_pwszOriginalVolumeName)
3499             .field("m_pwszOriginatingMachine", &self.m_pwszOriginatingMachine)
3500             .field("m_pwszServiceMachine", &self.m_pwszServiceMachine)
3501             .field("m_pwszExposedName", &self.m_pwszExposedName)
3502             .field("m_pwszExposedPath", &self.m_pwszExposedPath)
3503             .field("m_ProviderId", &self.m_ProviderId)
3504             .field("m_lSnapshotAttributes", &self.m_lSnapshotAttributes)
3505             .field("m_tsCreationTimestamp", &self.m_tsCreationTimestamp)
3506             .field("m_eStatus", &self.m_eStatus)
3507             .finish()
3508     }
3509 }
3510 impl ::std::cmp::PartialEq for VSS_SNAPSHOT_PROP {
eq(&self, other: &Self) -> bool3511     fn eq(&self, other: &Self) -> bool {
3512         self.m_SnapshotId == other.m_SnapshotId
3513             && self.m_SnapshotSetId == other.m_SnapshotSetId
3514             && self.m_lSnapshotsCount == other.m_lSnapshotsCount
3515             && self.m_pwszSnapshotDeviceObject == other.m_pwszSnapshotDeviceObject
3516             && self.m_pwszOriginalVolumeName == other.m_pwszOriginalVolumeName
3517             && self.m_pwszOriginatingMachine == other.m_pwszOriginatingMachine
3518             && self.m_pwszServiceMachine == other.m_pwszServiceMachine
3519             && self.m_pwszExposedName == other.m_pwszExposedName
3520             && self.m_pwszExposedPath == other.m_pwszExposedPath
3521             && self.m_ProviderId == other.m_ProviderId
3522             && self.m_lSnapshotAttributes == other.m_lSnapshotAttributes
3523             && self.m_tsCreationTimestamp == other.m_tsCreationTimestamp
3524             && self.m_eStatus == other.m_eStatus
3525     }
3526 }
3527 impl ::std::cmp::Eq for VSS_SNAPSHOT_PROP {}
3528 unsafe impl ::windows::runtime::Abi for VSS_SNAPSHOT_PROP {
3529     type Abi = Self;
3530     type DefaultType = Self;
3531 }
3532 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3533 #[repr(transparent)]
3534 pub struct VSS_SNAPSHOT_PROPERTY_ID(pub i32);
3535 pub const VSS_SPROPID_UNKNOWN: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(0i32);
3536 pub const VSS_SPROPID_SNAPSHOT_ID: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(1i32);
3537 pub const VSS_SPROPID_SNAPSHOT_SET_ID: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(2i32);
3538 pub const VSS_SPROPID_SNAPSHOTS_COUNT: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(3i32);
3539 pub const VSS_SPROPID_SNAPSHOT_DEVICE: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(4i32);
3540 pub const VSS_SPROPID_ORIGINAL_VOLUME: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(5i32);
3541 pub const VSS_SPROPID_ORIGINATING_MACHINE: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(6i32);
3542 pub const VSS_SPROPID_SERVICE_MACHINE: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(7i32);
3543 pub const VSS_SPROPID_EXPOSED_NAME: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(8i32);
3544 pub const VSS_SPROPID_EXPOSED_PATH: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(9i32);
3545 pub const VSS_SPROPID_PROVIDER_ID: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(10i32);
3546 pub const VSS_SPROPID_SNAPSHOT_ATTRIBUTES: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(11i32);
3547 pub const VSS_SPROPID_CREATION_TIMESTAMP: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(12i32);
3548 pub const VSS_SPROPID_STATUS: VSS_SNAPSHOT_PROPERTY_ID = VSS_SNAPSHOT_PROPERTY_ID(13i32);
3549 impl ::std::convert::From<i32> for VSS_SNAPSHOT_PROPERTY_ID {
from(value: i32) -> Self3550     fn from(value: i32) -> Self {
3551         Self(value)
3552     }
3553 }
3554 unsafe impl ::windows::runtime::Abi for VSS_SNAPSHOT_PROPERTY_ID {
3555     type Abi = Self;
3556     type DefaultType = Self;
3557 }
3558 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3559 #[repr(transparent)]
3560 pub struct VSS_SNAPSHOT_STATE(pub i32);
3561 pub const VSS_SS_UNKNOWN: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(0i32);
3562 pub const VSS_SS_PREPARING: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(1i32);
3563 pub const VSS_SS_PROCESSING_PREPARE: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(2i32);
3564 pub const VSS_SS_PREPARED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(3i32);
3565 pub const VSS_SS_PROCESSING_PRECOMMIT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(4i32);
3566 pub const VSS_SS_PRECOMMITTED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(5i32);
3567 pub const VSS_SS_PROCESSING_COMMIT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(6i32);
3568 pub const VSS_SS_COMMITTED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(7i32);
3569 pub const VSS_SS_PROCESSING_POSTCOMMIT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(8i32);
3570 pub const VSS_SS_PROCESSING_PREFINALCOMMIT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(9i32);
3571 pub const VSS_SS_PREFINALCOMMITTED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(10i32);
3572 pub const VSS_SS_PROCESSING_POSTFINALCOMMIT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(11i32);
3573 pub const VSS_SS_CREATED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(12i32);
3574 pub const VSS_SS_ABORTED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(13i32);
3575 pub const VSS_SS_DELETED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(14i32);
3576 pub const VSS_SS_POSTCOMMITTED: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(15i32);
3577 pub const VSS_SS_COUNT: VSS_SNAPSHOT_STATE = VSS_SNAPSHOT_STATE(16i32);
3578 impl ::std::convert::From<i32> for VSS_SNAPSHOT_STATE {
from(value: i32) -> Self3579     fn from(value: i32) -> Self {
3580         Self(value)
3581     }
3582 }
3583 unsafe impl ::windows::runtime::Abi for VSS_SNAPSHOT_STATE {
3584     type Abi = Self;
3585     type DefaultType = Self;
3586 }
3587 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3588 #[repr(transparent)]
3589 pub struct VSS_SOURCE_TYPE(pub i32);
3590 pub const VSS_ST_UNDEFINED: VSS_SOURCE_TYPE = VSS_SOURCE_TYPE(0i32);
3591 pub const VSS_ST_TRANSACTEDDB: VSS_SOURCE_TYPE = VSS_SOURCE_TYPE(1i32);
3592 pub const VSS_ST_NONTRANSACTEDDB: VSS_SOURCE_TYPE = VSS_SOURCE_TYPE(2i32);
3593 pub const VSS_ST_OTHER: VSS_SOURCE_TYPE = VSS_SOURCE_TYPE(3i32);
3594 impl ::std::convert::From<i32> for VSS_SOURCE_TYPE {
from(value: i32) -> Self3595     fn from(value: i32) -> Self {
3596         Self(value)
3597     }
3598 }
3599 unsafe impl ::windows::runtime::Abi for VSS_SOURCE_TYPE {
3600     type Abi = Self;
3601     type DefaultType = Self;
3602 }
3603 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3604 #[repr(transparent)]
3605 pub struct VSS_SUBSCRIBE_MASK(pub i32);
3606 pub const VSS_SM_POST_SNAPSHOT_FLAG: VSS_SUBSCRIBE_MASK = VSS_SUBSCRIBE_MASK(1i32);
3607 pub const VSS_SM_BACKUP_EVENTS_FLAG: VSS_SUBSCRIBE_MASK = VSS_SUBSCRIBE_MASK(2i32);
3608 pub const VSS_SM_RESTORE_EVENTS_FLAG: VSS_SUBSCRIBE_MASK = VSS_SUBSCRIBE_MASK(4i32);
3609 pub const VSS_SM_IO_THROTTLING_FLAG: VSS_SUBSCRIBE_MASK = VSS_SUBSCRIBE_MASK(8i32);
3610 pub const VSS_SM_ALL_FLAGS: VSS_SUBSCRIBE_MASK = VSS_SUBSCRIBE_MASK(-1i32);
3611 impl ::std::convert::From<i32> for VSS_SUBSCRIBE_MASK {
from(value: i32) -> Self3612     fn from(value: i32) -> Self {
3613         Self(value)
3614     }
3615 }
3616 unsafe impl ::windows::runtime::Abi for VSS_SUBSCRIBE_MASK {
3617     type Abi = Self;
3618     type DefaultType = Self;
3619 }
3620 pub const VSS_S_ASYNC_CANCELLED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(271115i32 as _);
3621 pub const VSS_S_ASYNC_FINISHED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(271114i32 as _);
3622 pub const VSS_S_ASYNC_PENDING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(271113i32 as _);
3623 pub const VSS_S_SOME_SNAPSHOTS_NOT_IMPORTED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(271137i32 as _);
3624 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3625 #[repr(transparent)]
3626 pub struct VSS_USAGE_TYPE(pub i32);
3627 pub const VSS_UT_UNDEFINED: VSS_USAGE_TYPE = VSS_USAGE_TYPE(0i32);
3628 pub const VSS_UT_BOOTABLESYSTEMSTATE: VSS_USAGE_TYPE = VSS_USAGE_TYPE(1i32);
3629 pub const VSS_UT_SYSTEMSERVICE: VSS_USAGE_TYPE = VSS_USAGE_TYPE(2i32);
3630 pub const VSS_UT_USERDATA: VSS_USAGE_TYPE = VSS_USAGE_TYPE(3i32);
3631 pub const VSS_UT_OTHER: VSS_USAGE_TYPE = VSS_USAGE_TYPE(4i32);
3632 impl ::std::convert::From<i32> for VSS_USAGE_TYPE {
from(value: i32) -> Self3633     fn from(value: i32) -> Self {
3634         Self(value)
3635     }
3636 }
3637 unsafe impl ::windows::runtime::Abi for VSS_USAGE_TYPE {
3638     type Abi = Self;
3639     type DefaultType = Self;
3640 }
3641 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3642 #[repr(C)]
3643 pub struct VSS_VOLUME_PROP {
3644     pub m_pwszVolumeName: *mut u16,
3645     pub m_pwszVolumeDisplayName: *mut u16,
3646 }
3647 impl VSS_VOLUME_PROP {}
3648 impl ::std::default::Default for VSS_VOLUME_PROP {
default() -> Self3649     fn default() -> Self {
3650         unsafe { ::std::mem::zeroed() }
3651     }
3652 }
3653 impl ::std::fmt::Debug for VSS_VOLUME_PROP {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3654     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3655         fmt.debug_struct("VSS_VOLUME_PROP").field("m_pwszVolumeName", &self.m_pwszVolumeName).field("m_pwszVolumeDisplayName", &self.m_pwszVolumeDisplayName).finish()
3656     }
3657 }
3658 impl ::std::cmp::PartialEq for VSS_VOLUME_PROP {
eq(&self, other: &Self) -> bool3659     fn eq(&self, other: &Self) -> bool {
3660         self.m_pwszVolumeName == other.m_pwszVolumeName && self.m_pwszVolumeDisplayName == other.m_pwszVolumeDisplayName
3661     }
3662 }
3663 impl ::std::cmp::Eq for VSS_VOLUME_PROP {}
3664 unsafe impl ::windows::runtime::Abi for VSS_VOLUME_PROP {
3665     type Abi = Self;
3666     type DefaultType = Self;
3667 }
3668 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3669 #[repr(C)]
3670 #[cfg(feature = "Win32_Foundation")]
3671 pub struct VSS_VOLUME_PROTECTION_INFO {
3672     pub m_protectionLevel: VSS_PROTECTION_LEVEL,
3673     pub m_volumeIsOfflineForProtection: super::super::Foundation::BOOL,
3674     pub m_protectionFault: VSS_PROTECTION_FAULT,
3675     pub m_failureStatus: i32,
3676     pub m_volumeHasUnusedDiffArea: super::super::Foundation::BOOL,
3677     pub m_reserved: u32,
3678 }
3679 #[cfg(feature = "Win32_Foundation")]
3680 impl VSS_VOLUME_PROTECTION_INFO {}
3681 #[cfg(feature = "Win32_Foundation")]
3682 impl ::std::default::Default for VSS_VOLUME_PROTECTION_INFO {
default() -> Self3683     fn default() -> Self {
3684         unsafe { ::std::mem::zeroed() }
3685     }
3686 }
3687 #[cfg(feature = "Win32_Foundation")]
3688 impl ::std::fmt::Debug for VSS_VOLUME_PROTECTION_INFO {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result3689     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3690         fmt.debug_struct("VSS_VOLUME_PROTECTION_INFO")
3691             .field("m_protectionLevel", &self.m_protectionLevel)
3692             .field("m_volumeIsOfflineForProtection", &self.m_volumeIsOfflineForProtection)
3693             .field("m_protectionFault", &self.m_protectionFault)
3694             .field("m_failureStatus", &self.m_failureStatus)
3695             .field("m_volumeHasUnusedDiffArea", &self.m_volumeHasUnusedDiffArea)
3696             .field("m_reserved", &self.m_reserved)
3697             .finish()
3698     }
3699 }
3700 #[cfg(feature = "Win32_Foundation")]
3701 impl ::std::cmp::PartialEq for VSS_VOLUME_PROTECTION_INFO {
eq(&self, other: &Self) -> bool3702     fn eq(&self, other: &Self) -> bool {
3703         self.m_protectionLevel == other.m_protectionLevel && self.m_volumeIsOfflineForProtection == other.m_volumeIsOfflineForProtection && self.m_protectionFault == other.m_protectionFault && self.m_failureStatus == other.m_failureStatus && self.m_volumeHasUnusedDiffArea == other.m_volumeHasUnusedDiffArea && self.m_reserved == other.m_reserved
3704     }
3705 }
3706 #[cfg(feature = "Win32_Foundation")]
3707 impl ::std::cmp::Eq for VSS_VOLUME_PROTECTION_INFO {}
3708 #[cfg(feature = "Win32_Foundation")]
3709 unsafe impl ::windows::runtime::Abi for VSS_VOLUME_PROTECTION_INFO {
3710     type Abi = Self;
3711     type DefaultType = Self;
3712 }
3713 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3714 #[repr(transparent)]
3715 pub struct VSS_VOLUME_SNAPSHOT_ATTRIBUTES(pub i32);
3716 pub const VSS_VOLSNAP_ATTR_PERSISTENT: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(1i32);
3717 pub const VSS_VOLSNAP_ATTR_NO_AUTORECOVERY: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(2i32);
3718 pub const VSS_VOLSNAP_ATTR_CLIENT_ACCESSIBLE: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(4i32);
3719 pub const VSS_VOLSNAP_ATTR_NO_AUTO_RELEASE: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(8i32);
3720 pub const VSS_VOLSNAP_ATTR_NO_WRITERS: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(16i32);
3721 pub const VSS_VOLSNAP_ATTR_TRANSPORTABLE: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(32i32);
3722 pub const VSS_VOLSNAP_ATTR_NOT_SURFACED: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(64i32);
3723 pub const VSS_VOLSNAP_ATTR_NOT_TRANSACTED: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(128i32);
3724 pub const VSS_VOLSNAP_ATTR_HARDWARE_ASSISTED: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(65536i32);
3725 pub const VSS_VOLSNAP_ATTR_DIFFERENTIAL: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(131072i32);
3726 pub const VSS_VOLSNAP_ATTR_PLEX: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(262144i32);
3727 pub const VSS_VOLSNAP_ATTR_IMPORTED: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(524288i32);
3728 pub const VSS_VOLSNAP_ATTR_EXPOSED_LOCALLY: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(1048576i32);
3729 pub const VSS_VOLSNAP_ATTR_EXPOSED_REMOTELY: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(2097152i32);
3730 pub const VSS_VOLSNAP_ATTR_AUTORECOVER: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(4194304i32);
3731 pub const VSS_VOLSNAP_ATTR_ROLLBACK_RECOVERY: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(8388608i32);
3732 pub const VSS_VOLSNAP_ATTR_DELAYED_POSTSNAPSHOT: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(16777216i32);
3733 pub const VSS_VOLSNAP_ATTR_TXF_RECOVERY: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(33554432i32);
3734 pub const VSS_VOLSNAP_ATTR_FILE_SHARE: VSS_VOLUME_SNAPSHOT_ATTRIBUTES = VSS_VOLUME_SNAPSHOT_ATTRIBUTES(67108864i32);
3735 impl ::std::convert::From<i32> for VSS_VOLUME_SNAPSHOT_ATTRIBUTES {
from(value: i32) -> Self3736     fn from(value: i32) -> Self {
3737         Self(value)
3738     }
3739 }
3740 unsafe impl ::windows::runtime::Abi for VSS_VOLUME_SNAPSHOT_ATTRIBUTES {
3741     type Abi = Self;
3742     type DefaultType = Self;
3743 }
3744 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3745 #[repr(transparent)]
3746 pub struct VSS_WRITERRESTORE_ENUM(pub i32);
3747 pub const VSS_WRE_UNDEFINED: VSS_WRITERRESTORE_ENUM = VSS_WRITERRESTORE_ENUM(0i32);
3748 pub const VSS_WRE_NEVER: VSS_WRITERRESTORE_ENUM = VSS_WRITERRESTORE_ENUM(1i32);
3749 pub const VSS_WRE_IF_REPLACE_FAILS: VSS_WRITERRESTORE_ENUM = VSS_WRITERRESTORE_ENUM(2i32);
3750 pub const VSS_WRE_ALWAYS: VSS_WRITERRESTORE_ENUM = VSS_WRITERRESTORE_ENUM(3i32);
3751 impl ::std::convert::From<i32> for VSS_WRITERRESTORE_ENUM {
from(value: i32) -> Self3752     fn from(value: i32) -> Self {
3753         Self(value)
3754     }
3755 }
3756 unsafe impl ::windows::runtime::Abi for VSS_WRITERRESTORE_ENUM {
3757     type Abi = Self;
3758     type DefaultType = Self;
3759 }
3760 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3761 #[repr(transparent)]
3762 pub struct VSS_WRITER_STATE(pub i32);
3763 pub const VSS_WS_UNKNOWN: VSS_WRITER_STATE = VSS_WRITER_STATE(0i32);
3764 pub const VSS_WS_STABLE: VSS_WRITER_STATE = VSS_WRITER_STATE(1i32);
3765 pub const VSS_WS_WAITING_FOR_FREEZE: VSS_WRITER_STATE = VSS_WRITER_STATE(2i32);
3766 pub const VSS_WS_WAITING_FOR_THAW: VSS_WRITER_STATE = VSS_WRITER_STATE(3i32);
3767 pub const VSS_WS_WAITING_FOR_POST_SNAPSHOT: VSS_WRITER_STATE = VSS_WRITER_STATE(4i32);
3768 pub const VSS_WS_WAITING_FOR_BACKUP_COMPLETE: VSS_WRITER_STATE = VSS_WRITER_STATE(5i32);
3769 pub const VSS_WS_FAILED_AT_IDENTIFY: VSS_WRITER_STATE = VSS_WRITER_STATE(6i32);
3770 pub const VSS_WS_FAILED_AT_PREPARE_BACKUP: VSS_WRITER_STATE = VSS_WRITER_STATE(7i32);
3771 pub const VSS_WS_FAILED_AT_PREPARE_SNAPSHOT: VSS_WRITER_STATE = VSS_WRITER_STATE(8i32);
3772 pub const VSS_WS_FAILED_AT_FREEZE: VSS_WRITER_STATE = VSS_WRITER_STATE(9i32);
3773 pub const VSS_WS_FAILED_AT_THAW: VSS_WRITER_STATE = VSS_WRITER_STATE(10i32);
3774 pub const VSS_WS_FAILED_AT_POST_SNAPSHOT: VSS_WRITER_STATE = VSS_WRITER_STATE(11i32);
3775 pub const VSS_WS_FAILED_AT_BACKUP_COMPLETE: VSS_WRITER_STATE = VSS_WRITER_STATE(12i32);
3776 pub const VSS_WS_FAILED_AT_PRE_RESTORE: VSS_WRITER_STATE = VSS_WRITER_STATE(13i32);
3777 pub const VSS_WS_FAILED_AT_POST_RESTORE: VSS_WRITER_STATE = VSS_WRITER_STATE(14i32);
3778 pub const VSS_WS_FAILED_AT_BACKUPSHUTDOWN: VSS_WRITER_STATE = VSS_WRITER_STATE(15i32);
3779 pub const VSS_WS_COUNT: VSS_WRITER_STATE = VSS_WRITER_STATE(16i32);
3780 impl ::std::convert::From<i32> for VSS_WRITER_STATE {
from(value: i32) -> Self3781     fn from(value: i32) -> Self {
3782         Self(value)
3783     }
3784 }
3785 unsafe impl ::windows::runtime::Abi for VSS_WRITER_STATE {
3786     type Abi = Self;
3787     type DefaultType = Self;
3788 }
3789 pub const VssSnapshotMgmt: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(190458962, 16057, 18186, [150, 226, 108, 109, 69, 112, 228, 15]);
3790