1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3 #[repr(C)]
4 pub struct BackgroundDownloadProgress {
5     pub BytesReceived: u64,
6     pub TotalBytesToReceive: u64,
7     pub Status: BackgroundTransferStatus,
8     pub HasResponseChanged: bool,
9     pub HasRestarted: bool,
10 }
11 impl BackgroundDownloadProgress {}
12 impl ::std::default::Default for BackgroundDownloadProgress {
default() -> Self13     fn default() -> Self {
14         unsafe { ::std::mem::zeroed() }
15     }
16 }
17 impl ::std::fmt::Debug for BackgroundDownloadProgress {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result18     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19         fmt.debug_struct("BackgroundDownloadProgress").field("BytesReceived", &self.BytesReceived).field("TotalBytesToReceive", &self.TotalBytesToReceive).field("Status", &self.Status).field("HasResponseChanged", &self.HasResponseChanged).field("HasRestarted", &self.HasRestarted).finish()
20     }
21 }
22 impl ::std::cmp::PartialEq for BackgroundDownloadProgress {
eq(&self, other: &Self) -> bool23     fn eq(&self, other: &Self) -> bool {
24         self.BytesReceived == other.BytesReceived && self.TotalBytesToReceive == other.TotalBytesToReceive && self.Status == other.Status && self.HasResponseChanged == other.HasResponseChanged && self.HasRestarted == other.HasRestarted
25     }
26 }
27 impl ::std::cmp::Eq for BackgroundDownloadProgress {}
28 unsafe impl ::windows::runtime::Abi for BackgroundDownloadProgress {
29     type Abi = Self;
30     type DefaultType = Self;
31 }
32 unsafe impl ::windows::runtime::RuntimeType for BackgroundDownloadProgress {
33     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Networking.BackgroundTransfer.BackgroundDownloadProgress;u8;u8;enum(Windows.Networking.BackgroundTransfer.BackgroundTransferStatus;i4);b1;b1)");
34 }
35 #[repr(transparent)]
36 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
37 pub struct BackgroundDownloader(::windows::runtime::IInspectable);
38 impl BackgroundDownloader {
new() -> ::windows::runtime::Result<Self>39     pub fn new() -> ::windows::runtime::Result<Self> {
40         Self::IActivationFactory(|f| f.activate_instance::<Self>())
41     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>42     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
43         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundDownloader, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
44         unsafe { SHARED.call(callback) }
45     }
46     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateDownload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, resultfile: Param1) -> ::windows::runtime::Result<DownloadOperation>47     pub fn CreateDownload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, resultfile: Param1) -> ::windows::runtime::Result<DownloadOperation> {
48         let this = self;
49         unsafe {
50             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
51             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), uri.into_param().abi(), resultfile.into_param().abi(), &mut result__).from_abi::<DownloadOperation>(result__)
52         }
53     }
54     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateDownloadFromFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param2: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, resultfile: Param1, requestbodyfile: Param2) -> ::windows::runtime::Result<DownloadOperation>55     pub fn CreateDownloadFromFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param2: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, resultfile: Param1, requestbodyfile: Param2) -> ::windows::runtime::Result<DownloadOperation> {
56         let this = self;
57         unsafe {
58             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
59             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), uri.into_param().abi(), resultfile.into_param().abi(), requestbodyfile.into_param().abi(), &mut result__).from_abi::<DownloadOperation>(result__)
60         }
61     }
62     #[cfg(all(feature = "Foundation", feature = "Storage", feature = "Storage_Streams"))]
CreateDownloadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param2: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IInputStream>>(&self, uri: Param0, resultfile: Param1, requestbodystream: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<DownloadOperation>>63     pub fn CreateDownloadAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>, Param2: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IInputStream>>(&self, uri: Param0, resultfile: Param1, requestbodystream: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<DownloadOperation>> {
64         let this = self;
65         unsafe {
66             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
67             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), uri.into_param().abi(), resultfile.into_param().abi(), requestbodystream.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<DownloadOperation>>(result__)
68         }
69     }
TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup>70     pub fn TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup> {
71         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
72         unsafe {
73             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
74             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferGroup>(result__)
75         }
76     }
SetTransferGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(&self, value: Param0) -> ::windows::runtime::Result<()>77     pub fn SetTransferGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
78         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
79         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
80     }
81     #[cfg(feature = "UI_Notifications")]
SuccessToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification>82     pub fn SuccessToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification> {
83         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
84         unsafe {
85             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
86             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::ToastNotification>(result__)
87         }
88     }
89     #[cfg(feature = "UI_Notifications")]
SetSuccessToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>90     pub fn SetSuccessToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
91         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
92         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
93     }
94     #[cfg(feature = "UI_Notifications")]
FailureToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification>95     pub fn FailureToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification> {
96         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
97         unsafe {
98             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
99             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::ToastNotification>(result__)
100         }
101     }
102     #[cfg(feature = "UI_Notifications")]
SetFailureToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>103     pub fn SetFailureToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
104         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
105         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
106     }
107     #[cfg(feature = "UI_Notifications")]
SuccessTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification>108     pub fn SuccessTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification> {
109         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
110         unsafe {
111             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
112             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::TileNotification>(result__)
113         }
114     }
115     #[cfg(feature = "UI_Notifications")]
SetSuccessTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>116     pub fn SetSuccessTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
117         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
118         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
119     }
120     #[cfg(feature = "UI_Notifications")]
FailureTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification>121     pub fn FailureTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification> {
122         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
123         unsafe {
124             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
125             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::TileNotification>(result__)
126         }
127     }
128     #[cfg(feature = "UI_Notifications")]
SetFailureTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>129     pub fn SetFailureTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
130         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader2>(self)?;
131         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
132     }
CompletionGroup(&self) -> ::windows::runtime::Result<BackgroundTransferCompletionGroup>133     pub fn CompletionGroup(&self) -> ::windows::runtime::Result<BackgroundTransferCompletionGroup> {
134         let this = &::windows::runtime::Interface::cast::<IBackgroundDownloader3>(self)?;
135         unsafe {
136             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
137             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCompletionGroup>(result__)
138         }
139     }
SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>140     pub fn SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
141         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
142         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
143     }
144     #[cfg(feature = "Security_Credentials")]
ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>145     pub fn ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
146         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
147         unsafe {
148             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
149             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
150         }
151     }
152     #[cfg(feature = "Security_Credentials")]
SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>153     pub fn SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
154         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
155         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
156     }
157     #[cfg(feature = "Security_Credentials")]
ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>158     pub fn ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
159         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
160         unsafe {
161             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
162             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
163         }
164     }
165     #[cfg(feature = "Security_Credentials")]
SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>166     pub fn SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
167         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
168         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
169     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>170     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
171         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
172         unsafe {
173             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
174             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
175         }
176     }
SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>177     pub fn SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
178         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
179         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
180     }
181     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>182     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
183         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
184         unsafe {
185             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
186             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
187         }
188     }
189     #[cfg(feature = "deprecated")]
SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>190     pub fn SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
191         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
192         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
193     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>194     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
195         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
196         unsafe {
197             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
198             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
199         }
200     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>201     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
202         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
203         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
204     }
CreateWithCompletionGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferCompletionGroup>>(completiongroup: Param0) -> ::windows::runtime::Result<BackgroundDownloader>205     pub fn CreateWithCompletionGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferCompletionGroup>>(completiongroup: Param0) -> ::windows::runtime::Result<BackgroundDownloader> {
206         Self::IBackgroundDownloaderFactory(|this| unsafe {
207             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
208             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), completiongroup.into_param().abi(), &mut result__).from_abi::<BackgroundDownloader>(result__)
209         })
210     }
211     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentDownloadsAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>212     pub fn GetCurrentDownloadsAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>> {
213         Self::IBackgroundDownloaderStaticMethods(|this| unsafe {
214             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
215             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>(result__)
216         })
217     }
218     #[cfg(feature = "deprecated")]
219     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentDownloadsForGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>220     pub fn GetCurrentDownloadsForGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>> {
221         Self::IBackgroundDownloaderStaticMethods(|this| unsafe {
222             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
223             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), group.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>(result__)
224         })
225     }
226     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentDownloadsForTransferGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>227     pub fn GetCurrentDownloadsForTransferGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>> {
228         Self::IBackgroundDownloaderStaticMethods2(|this| unsafe {
229             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
230             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), group.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<DownloadOperation>>>(result__)
231         })
232     }
233     #[cfg(feature = "deprecated")]
234     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RequestUnconstrainedDownloadsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<DownloadOperation>>>(operations: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>>235     pub fn RequestUnconstrainedDownloadsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<DownloadOperation>>>(operations: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>> {
236         Self::IBackgroundDownloaderUserConsent(|this| unsafe {
237             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
238             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), operations.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>>(result__)
239         })
240     }
IBackgroundDownloaderFactory<R, F: FnOnce(&IBackgroundDownloaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>241     pub fn IBackgroundDownloaderFactory<R, F: FnOnce(&IBackgroundDownloaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
242         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundDownloader, IBackgroundDownloaderFactory> = ::windows::runtime::FactoryCache::new();
243         unsafe { SHARED.call(callback) }
244     }
IBackgroundDownloaderStaticMethods<R, F: FnOnce(&IBackgroundDownloaderStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>245     pub fn IBackgroundDownloaderStaticMethods<R, F: FnOnce(&IBackgroundDownloaderStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
246         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundDownloader, IBackgroundDownloaderStaticMethods> = ::windows::runtime::FactoryCache::new();
247         unsafe { SHARED.call(callback) }
248     }
IBackgroundDownloaderStaticMethods2<R, F: FnOnce(&IBackgroundDownloaderStaticMethods2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>249     pub fn IBackgroundDownloaderStaticMethods2<R, F: FnOnce(&IBackgroundDownloaderStaticMethods2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
250         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundDownloader, IBackgroundDownloaderStaticMethods2> = ::windows::runtime::FactoryCache::new();
251         unsafe { SHARED.call(callback) }
252     }
IBackgroundDownloaderUserConsent<R, F: FnOnce(&IBackgroundDownloaderUserConsent) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>253     pub fn IBackgroundDownloaderUserConsent<R, F: FnOnce(&IBackgroundDownloaderUserConsent) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
254         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundDownloader, IBackgroundDownloaderUserConsent> = ::windows::runtime::FactoryCache::new();
255         unsafe { SHARED.call(callback) }
256     }
257 }
258 unsafe impl ::windows::runtime::RuntimeType for BackgroundDownloader {
259     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundDownloader;{c1c79333-6649-4b1d-a826-a4b3dd234d0b})");
260 }
261 unsafe impl ::windows::runtime::Interface for BackgroundDownloader {
262     type Vtable = IBackgroundDownloader_abi;
263     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3251082035, 26185, 19229, [168, 38, 164, 179, 221, 35, 77, 11]);
264 }
265 impl ::windows::runtime::RuntimeName for BackgroundDownloader {
266     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundDownloader";
267 }
268 impl ::std::convert::From<BackgroundDownloader> for ::windows::runtime::IUnknown {
from(value: BackgroundDownloader) -> Self269     fn from(value: BackgroundDownloader) -> Self {
270         unsafe { ::std::mem::transmute(value) }
271     }
272 }
273 impl ::std::convert::From<&BackgroundDownloader> for ::windows::runtime::IUnknown {
from(value: &BackgroundDownloader) -> Self274     fn from(value: &BackgroundDownloader) -> Self {
275         ::std::convert::From::from(::std::clone::Clone::clone(value))
276     }
277 }
278 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>279     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
280         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
281     }
282 }
283 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>284     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
285         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
286     }
287 }
288 impl ::std::convert::From<BackgroundDownloader> for ::windows::runtime::IInspectable {
from(value: BackgroundDownloader) -> Self289     fn from(value: BackgroundDownloader) -> Self {
290         value.0
291     }
292 }
293 impl ::std::convert::From<&BackgroundDownloader> for ::windows::runtime::IInspectable {
from(value: &BackgroundDownloader) -> Self294     fn from(value: &BackgroundDownloader) -> Self {
295         value.0.clone()
296     }
297 }
298 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>299     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
300         ::windows::runtime::Param::Owned(self.0)
301     }
302 }
303 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>304     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
305         ::windows::runtime::Param::Borrowed(&self.0)
306     }
307 }
308 impl ::std::convert::TryFrom<BackgroundDownloader> for IBackgroundTransferBase {
309     type Error = ::windows::runtime::Error;
try_from(value: BackgroundDownloader) -> ::windows::runtime::Result<Self>310     fn try_from(value: BackgroundDownloader) -> ::windows::runtime::Result<Self> {
311         ::std::convert::TryFrom::try_from(&value)
312     }
313 }
314 impl ::std::convert::TryFrom<&BackgroundDownloader> for IBackgroundTransferBase {
315     type Error = ::windows::runtime::Error;
try_from(value: &BackgroundDownloader) -> ::windows::runtime::Result<Self>316     fn try_from(value: &BackgroundDownloader) -> ::windows::runtime::Result<Self> {
317         ::windows::runtime::Interface::cast(value)
318     }
319 }
320 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferBase> for BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase>321     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase> {
322         ::windows::runtime::IntoParam::into_param(&self)
323     }
324 }
325 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferBase> for &BackgroundDownloader {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase>326     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase> {
327         ::std::convert::TryInto::<IBackgroundTransferBase>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
328     }
329 }
330 unsafe impl ::std::marker::Send for BackgroundDownloader {}
331 unsafe impl ::std::marker::Sync for BackgroundDownloader {}
332 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
333 #[repr(transparent)]
334 pub struct BackgroundTransferBehavior(pub i32);
335 impl BackgroundTransferBehavior {
336     pub const Parallel: BackgroundTransferBehavior = BackgroundTransferBehavior(0i32);
337     pub const Serialized: BackgroundTransferBehavior = BackgroundTransferBehavior(1i32);
338 }
339 impl ::std::convert::From<i32> for BackgroundTransferBehavior {
from(value: i32) -> Self340     fn from(value: i32) -> Self {
341         Self(value)
342     }
343 }
344 unsafe impl ::windows::runtime::Abi for BackgroundTransferBehavior {
345     type Abi = Self;
346     type DefaultType = Self;
347 }
348 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferBehavior {
349     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.BackgroundTransfer.BackgroundTransferBehavior;i4)");
350 }
351 #[repr(transparent)]
352 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
353 pub struct BackgroundTransferCompletionGroup(::windows::runtime::IInspectable);
354 impl BackgroundTransferCompletionGroup {
new() -> ::windows::runtime::Result<Self>355     pub fn new() -> ::windows::runtime::Result<Self> {
356         Self::IActivationFactory(|f| f.activate_instance::<Self>())
357     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>358     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
359         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundTransferCompletionGroup, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
360         unsafe { SHARED.call(callback) }
361     }
362     #[cfg(feature = "ApplicationModel_Background")]
Trigger(&self) -> ::windows::runtime::Result<super::super::ApplicationModel::Background::IBackgroundTrigger>363     pub fn Trigger(&self) -> ::windows::runtime::Result<super::super::ApplicationModel::Background::IBackgroundTrigger> {
364         let this = self;
365         unsafe {
366             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
367             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::ApplicationModel::Background::IBackgroundTrigger>(result__)
368         }
369     }
IsEnabled(&self) -> ::windows::runtime::Result<bool>370     pub fn IsEnabled(&self) -> ::windows::runtime::Result<bool> {
371         let this = self;
372         unsafe {
373             let mut result__: bool = ::std::mem::zeroed();
374             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
375         }
376     }
Enable(&self) -> ::windows::runtime::Result<()>377     pub fn Enable(&self) -> ::windows::runtime::Result<()> {
378         let this = self;
379         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this)).ok() }
380     }
381 }
382 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferCompletionGroup {
383     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundTransferCompletionGroup;{2d930225-986b-574d-7950-0add47f5d706})");
384 }
385 unsafe impl ::windows::runtime::Interface for BackgroundTransferCompletionGroup {
386     type Vtable = IBackgroundTransferCompletionGroup_abi;
387     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(764609061, 39019, 22349, [121, 80, 10, 221, 71, 245, 215, 6]);
388 }
389 impl ::windows::runtime::RuntimeName for BackgroundTransferCompletionGroup {
390     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferCompletionGroup";
391 }
392 impl ::std::convert::From<BackgroundTransferCompletionGroup> for ::windows::runtime::IUnknown {
from(value: BackgroundTransferCompletionGroup) -> Self393     fn from(value: BackgroundTransferCompletionGroup) -> Self {
394         unsafe { ::std::mem::transmute(value) }
395     }
396 }
397 impl ::std::convert::From<&BackgroundTransferCompletionGroup> for ::windows::runtime::IUnknown {
from(value: &BackgroundTransferCompletionGroup) -> Self398     fn from(value: &BackgroundTransferCompletionGroup) -> Self {
399         ::std::convert::From::from(::std::clone::Clone::clone(value))
400     }
401 }
402 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundTransferCompletionGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>403     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
404         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
405     }
406 }
407 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundTransferCompletionGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>408     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
409         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
410     }
411 }
412 impl ::std::convert::From<BackgroundTransferCompletionGroup> for ::windows::runtime::IInspectable {
from(value: BackgroundTransferCompletionGroup) -> Self413     fn from(value: BackgroundTransferCompletionGroup) -> Self {
414         value.0
415     }
416 }
417 impl ::std::convert::From<&BackgroundTransferCompletionGroup> for ::windows::runtime::IInspectable {
from(value: &BackgroundTransferCompletionGroup) -> Self418     fn from(value: &BackgroundTransferCompletionGroup) -> Self {
419         value.0.clone()
420     }
421 }
422 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundTransferCompletionGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>423     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
424         ::windows::runtime::Param::Owned(self.0)
425     }
426 }
427 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundTransferCompletionGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>428     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
429         ::windows::runtime::Param::Borrowed(&self.0)
430     }
431 }
432 unsafe impl ::std::marker::Send for BackgroundTransferCompletionGroup {}
433 unsafe impl ::std::marker::Sync for BackgroundTransferCompletionGroup {}
434 #[repr(transparent)]
435 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
436 pub struct BackgroundTransferCompletionGroupTriggerDetails(::windows::runtime::IInspectable);
437 impl BackgroundTransferCompletionGroupTriggerDetails {
438     #[cfg(feature = "Foundation_Collections")]
Downloads(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<DownloadOperation>>439     pub fn Downloads(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<DownloadOperation>> {
440         let this = self;
441         unsafe {
442             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
443             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<DownloadOperation>>(result__)
444         }
445     }
446     #[cfg(feature = "Foundation_Collections")]
Uploads(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UploadOperation>>447     pub fn Uploads(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVectorView<UploadOperation>> {
448         let this = self;
449         unsafe {
450             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
451             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVectorView<UploadOperation>>(result__)
452         }
453     }
454 }
455 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferCompletionGroupTriggerDetails {
456     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundTransferCompletionGroupTriggerDetails;{7b6be286-6e47-5136-7fcb-fa4389f46f5b})");
457 }
458 unsafe impl ::windows::runtime::Interface for BackgroundTransferCompletionGroupTriggerDetails {
459     type Vtable = IBackgroundTransferCompletionGroupTriggerDetails_abi;
460     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2070667910, 28231, 20790, [127, 203, 250, 67, 137, 244, 111, 91]);
461 }
462 impl ::windows::runtime::RuntimeName for BackgroundTransferCompletionGroupTriggerDetails {
463     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferCompletionGroupTriggerDetails";
464 }
465 impl ::std::convert::From<BackgroundTransferCompletionGroupTriggerDetails> for ::windows::runtime::IUnknown {
from(value: BackgroundTransferCompletionGroupTriggerDetails) -> Self466     fn from(value: BackgroundTransferCompletionGroupTriggerDetails) -> Self {
467         unsafe { ::std::mem::transmute(value) }
468     }
469 }
470 impl ::std::convert::From<&BackgroundTransferCompletionGroupTriggerDetails> for ::windows::runtime::IUnknown {
from(value: &BackgroundTransferCompletionGroupTriggerDetails) -> Self471     fn from(value: &BackgroundTransferCompletionGroupTriggerDetails) -> Self {
472         ::std::convert::From::from(::std::clone::Clone::clone(value))
473     }
474 }
475 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundTransferCompletionGroupTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>476     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
477         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
478     }
479 }
480 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundTransferCompletionGroupTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>481     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
482         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
483     }
484 }
485 impl ::std::convert::From<BackgroundTransferCompletionGroupTriggerDetails> for ::windows::runtime::IInspectable {
from(value: BackgroundTransferCompletionGroupTriggerDetails) -> Self486     fn from(value: BackgroundTransferCompletionGroupTriggerDetails) -> Self {
487         value.0
488     }
489 }
490 impl ::std::convert::From<&BackgroundTransferCompletionGroupTriggerDetails> for ::windows::runtime::IInspectable {
from(value: &BackgroundTransferCompletionGroupTriggerDetails) -> Self491     fn from(value: &BackgroundTransferCompletionGroupTriggerDetails) -> Self {
492         value.0.clone()
493     }
494 }
495 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundTransferCompletionGroupTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>496     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
497         ::windows::runtime::Param::Owned(self.0)
498     }
499 }
500 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundTransferCompletionGroupTriggerDetails {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>501     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
502         ::windows::runtime::Param::Borrowed(&self.0)
503     }
504 }
505 unsafe impl ::std::marker::Send for BackgroundTransferCompletionGroupTriggerDetails {}
506 unsafe impl ::std::marker::Sync for BackgroundTransferCompletionGroupTriggerDetails {}
507 #[repr(transparent)]
508 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
509 pub struct BackgroundTransferContentPart(::windows::runtime::IInspectable);
510 impl BackgroundTransferContentPart {
new() -> ::windows::runtime::Result<Self>511     pub fn new() -> ::windows::runtime::Result<Self> {
512         Self::IActivationFactory(|f| f.activate_instance::<Self>())
513     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>514     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
515         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundTransferContentPart, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
516         unsafe { SHARED.call(callback) }
517     }
SetHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>518     pub fn SetHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
519         let this = self;
520         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
521     }
SetText<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>522     pub fn SetText<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
523         let this = self;
524         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
525     }
526     #[cfg(feature = "Storage")]
SetFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, value: Param0) -> ::windows::runtime::Result<()>527     pub fn SetFile<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
528         let this = self;
529         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
530     }
CreateWithName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0) -> ::windows::runtime::Result<BackgroundTransferContentPart>531     pub fn CreateWithName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0) -> ::windows::runtime::Result<BackgroundTransferContentPart> {
532         Self::IBackgroundTransferContentPartFactory(|this| unsafe {
533             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
534             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), name.into_param().abi(), &mut result__).from_abi::<BackgroundTransferContentPart>(result__)
535         })
536     }
CreateWithNameAndFileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0, filename: Param1) -> ::windows::runtime::Result<BackgroundTransferContentPart>537     pub fn CreateWithNameAndFileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0, filename: Param1) -> ::windows::runtime::Result<BackgroundTransferContentPart> {
538         Self::IBackgroundTransferContentPartFactory(|this| unsafe {
539             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
540             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), name.into_param().abi(), filename.into_param().abi(), &mut result__).from_abi::<BackgroundTransferContentPart>(result__)
541         })
542     }
IBackgroundTransferContentPartFactory<R, F: FnOnce(&IBackgroundTransferContentPartFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>543     pub fn IBackgroundTransferContentPartFactory<R, F: FnOnce(&IBackgroundTransferContentPartFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
544         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundTransferContentPart, IBackgroundTransferContentPartFactory> = ::windows::runtime::FactoryCache::new();
545         unsafe { SHARED.call(callback) }
546     }
547 }
548 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferContentPart {
549     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundTransferContentPart;{e8e15657-d7d1-4ed8-838e-674ac217ace6})");
550 }
551 unsafe impl ::windows::runtime::Interface for BackgroundTransferContentPart {
552     type Vtable = IBackgroundTransferContentPart_abi;
553     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3907081815, 55249, 20184, [131, 142, 103, 74, 194, 23, 172, 230]);
554 }
555 impl ::windows::runtime::RuntimeName for BackgroundTransferContentPart {
556     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferContentPart";
557 }
558 impl ::std::convert::From<BackgroundTransferContentPart> for ::windows::runtime::IUnknown {
from(value: BackgroundTransferContentPart) -> Self559     fn from(value: BackgroundTransferContentPart) -> Self {
560         unsafe { ::std::mem::transmute(value) }
561     }
562 }
563 impl ::std::convert::From<&BackgroundTransferContentPart> for ::windows::runtime::IUnknown {
from(value: &BackgroundTransferContentPart) -> Self564     fn from(value: &BackgroundTransferContentPart) -> Self {
565         ::std::convert::From::from(::std::clone::Clone::clone(value))
566     }
567 }
568 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundTransferContentPart {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>569     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
570         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
571     }
572 }
573 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundTransferContentPart {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>574     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
575         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
576     }
577 }
578 impl ::std::convert::From<BackgroundTransferContentPart> for ::windows::runtime::IInspectable {
from(value: BackgroundTransferContentPart) -> Self579     fn from(value: BackgroundTransferContentPart) -> Self {
580         value.0
581     }
582 }
583 impl ::std::convert::From<&BackgroundTransferContentPart> for ::windows::runtime::IInspectable {
from(value: &BackgroundTransferContentPart) -> Self584     fn from(value: &BackgroundTransferContentPart) -> Self {
585         value.0.clone()
586     }
587 }
588 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundTransferContentPart {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>589     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
590         ::windows::runtime::Param::Owned(self.0)
591     }
592 }
593 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundTransferContentPart {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>594     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
595         ::windows::runtime::Param::Borrowed(&self.0)
596     }
597 }
598 unsafe impl ::std::marker::Send for BackgroundTransferContentPart {}
599 unsafe impl ::std::marker::Sync for BackgroundTransferContentPart {}
600 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
601 #[repr(transparent)]
602 pub struct BackgroundTransferCostPolicy(pub i32);
603 impl BackgroundTransferCostPolicy {
604     pub const Default: BackgroundTransferCostPolicy = BackgroundTransferCostPolicy(0i32);
605     pub const UnrestrictedOnly: BackgroundTransferCostPolicy = BackgroundTransferCostPolicy(1i32);
606     pub const Always: BackgroundTransferCostPolicy = BackgroundTransferCostPolicy(2i32);
607 }
608 impl ::std::convert::From<i32> for BackgroundTransferCostPolicy {
from(value: i32) -> Self609     fn from(value: i32) -> Self {
610         Self(value)
611     }
612 }
613 unsafe impl ::windows::runtime::Abi for BackgroundTransferCostPolicy {
614     type Abi = Self;
615     type DefaultType = Self;
616 }
617 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferCostPolicy {
618     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.BackgroundTransfer.BackgroundTransferCostPolicy;i4)");
619 }
620 pub struct BackgroundTransferError {}
621 impl BackgroundTransferError {
622     #[cfg(feature = "Web")]
GetStatus(hresult: i32) -> ::windows::runtime::Result<super::super::Web::WebErrorStatus>623     pub fn GetStatus(hresult: i32) -> ::windows::runtime::Result<super::super::Web::WebErrorStatus> {
624         Self::IBackgroundTransferErrorStaticMethods(|this| unsafe {
625             let mut result__: super::super::Web::WebErrorStatus = ::std::mem::zeroed();
626             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), hresult, &mut result__).from_abi::<super::super::Web::WebErrorStatus>(result__)
627         })
628     }
IBackgroundTransferErrorStaticMethods<R, F: FnOnce(&IBackgroundTransferErrorStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>629     pub fn IBackgroundTransferErrorStaticMethods<R, F: FnOnce(&IBackgroundTransferErrorStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
630         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundTransferError, IBackgroundTransferErrorStaticMethods> = ::windows::runtime::FactoryCache::new();
631         unsafe { SHARED.call(callback) }
632     }
633 }
634 impl ::windows::runtime::RuntimeName for BackgroundTransferError {
635     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferError";
636 }
637 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
638 #[repr(C)]
639 pub struct BackgroundTransferFileRange {
640     pub Offset: u64,
641     pub Length: u64,
642 }
643 impl BackgroundTransferFileRange {}
644 impl ::std::default::Default for BackgroundTransferFileRange {
default() -> Self645     fn default() -> Self {
646         unsafe { ::std::mem::zeroed() }
647     }
648 }
649 impl ::std::fmt::Debug for BackgroundTransferFileRange {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result650     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
651         fmt.debug_struct("BackgroundTransferFileRange").field("Offset", &self.Offset).field("Length", &self.Length).finish()
652     }
653 }
654 impl ::std::cmp::PartialEq for BackgroundTransferFileRange {
eq(&self, other: &Self) -> bool655     fn eq(&self, other: &Self) -> bool {
656         self.Offset == other.Offset && self.Length == other.Length
657     }
658 }
659 impl ::std::cmp::Eq for BackgroundTransferFileRange {}
660 unsafe impl ::windows::runtime::Abi for BackgroundTransferFileRange {
661     type Abi = Self;
662     type DefaultType = Self;
663 }
664 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferFileRange {
665     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Networking.BackgroundTransfer.BackgroundTransferFileRange;u8;u8)");
666 }
667 #[repr(transparent)]
668 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
669 pub struct BackgroundTransferGroup(::windows::runtime::IInspectable);
670 impl BackgroundTransferGroup {
Name(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>671     pub fn Name(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
672         let this = self;
673         unsafe {
674             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
675             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
676         }
677     }
TransferBehavior(&self) -> ::windows::runtime::Result<BackgroundTransferBehavior>678     pub fn TransferBehavior(&self) -> ::windows::runtime::Result<BackgroundTransferBehavior> {
679         let this = self;
680         unsafe {
681             let mut result__: BackgroundTransferBehavior = ::std::mem::zeroed();
682             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferBehavior>(result__)
683         }
684     }
SetTransferBehavior(&self, value: BackgroundTransferBehavior) -> ::windows::runtime::Result<()>685     pub fn SetTransferBehavior(&self, value: BackgroundTransferBehavior) -> ::windows::runtime::Result<()> {
686         let this = self;
687         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), value).ok() }
688     }
CreateGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0) -> ::windows::runtime::Result<BackgroundTransferGroup>689     pub fn CreateGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(name: Param0) -> ::windows::runtime::Result<BackgroundTransferGroup> {
690         Self::IBackgroundTransferGroupStatics(|this| unsafe {
691             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
692             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), name.into_param().abi(), &mut result__).from_abi::<BackgroundTransferGroup>(result__)
693         })
694     }
IBackgroundTransferGroupStatics<R, F: FnOnce(&IBackgroundTransferGroupStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>695     pub fn IBackgroundTransferGroupStatics<R, F: FnOnce(&IBackgroundTransferGroupStatics) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
696         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundTransferGroup, IBackgroundTransferGroupStatics> = ::windows::runtime::FactoryCache::new();
697         unsafe { SHARED.call(callback) }
698     }
699 }
700 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferGroup {
701     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundTransferGroup;{d8c3e3e4-6459-4540-85eb-aaa1c8903677})");
702 }
703 unsafe impl ::windows::runtime::Interface for BackgroundTransferGroup {
704     type Vtable = IBackgroundTransferGroup_abi;
705     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3636716516, 25689, 17728, [133, 235, 170, 161, 200, 144, 54, 119]);
706 }
707 impl ::windows::runtime::RuntimeName for BackgroundTransferGroup {
708     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferGroup";
709 }
710 impl ::std::convert::From<BackgroundTransferGroup> for ::windows::runtime::IUnknown {
from(value: BackgroundTransferGroup) -> Self711     fn from(value: BackgroundTransferGroup) -> Self {
712         unsafe { ::std::mem::transmute(value) }
713     }
714 }
715 impl ::std::convert::From<&BackgroundTransferGroup> for ::windows::runtime::IUnknown {
from(value: &BackgroundTransferGroup) -> Self716     fn from(value: &BackgroundTransferGroup) -> Self {
717         ::std::convert::From::from(::std::clone::Clone::clone(value))
718     }
719 }
720 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundTransferGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>721     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
722         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
723     }
724 }
725 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundTransferGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>726     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
727         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
728     }
729 }
730 impl ::std::convert::From<BackgroundTransferGroup> for ::windows::runtime::IInspectable {
from(value: BackgroundTransferGroup) -> Self731     fn from(value: BackgroundTransferGroup) -> Self {
732         value.0
733     }
734 }
735 impl ::std::convert::From<&BackgroundTransferGroup> for ::windows::runtime::IInspectable {
from(value: &BackgroundTransferGroup) -> Self736     fn from(value: &BackgroundTransferGroup) -> Self {
737         value.0.clone()
738     }
739 }
740 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundTransferGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>741     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
742         ::windows::runtime::Param::Owned(self.0)
743     }
744 }
745 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundTransferGroup {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>746     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
747         ::windows::runtime::Param::Borrowed(&self.0)
748     }
749 }
750 unsafe impl ::std::marker::Send for BackgroundTransferGroup {}
751 unsafe impl ::std::marker::Sync for BackgroundTransferGroup {}
752 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
753 #[repr(transparent)]
754 pub struct BackgroundTransferPriority(pub i32);
755 impl BackgroundTransferPriority {
756     pub const Default: BackgroundTransferPriority = BackgroundTransferPriority(0i32);
757     pub const High: BackgroundTransferPriority = BackgroundTransferPriority(1i32);
758     pub const Low: BackgroundTransferPriority = BackgroundTransferPriority(2i32);
759 }
760 impl ::std::convert::From<i32> for BackgroundTransferPriority {
from(value: i32) -> Self761     fn from(value: i32) -> Self {
762         Self(value)
763     }
764 }
765 unsafe impl ::windows::runtime::Abi for BackgroundTransferPriority {
766     type Abi = Self;
767     type DefaultType = Self;
768 }
769 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferPriority {
770     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.BackgroundTransfer.BackgroundTransferPriority;i4)");
771 }
772 #[repr(transparent)]
773 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
774 pub struct BackgroundTransferRangesDownloadedEventArgs(::windows::runtime::IInspectable);
775 impl BackgroundTransferRangesDownloadedEventArgs {
WasDownloadRestarted(&self) -> ::windows::runtime::Result<bool>776     pub fn WasDownloadRestarted(&self) -> ::windows::runtime::Result<bool> {
777         let this = self;
778         unsafe {
779             let mut result__: bool = ::std::mem::zeroed();
780             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
781         }
782     }
783     #[cfg(feature = "Foundation_Collections")]
AddedRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>>784     pub fn AddedRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>> {
785         let this = self;
786         unsafe {
787             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
788             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>>(result__)
789         }
790     }
791     #[cfg(feature = "Foundation")]
GetDeferral(&self) -> ::windows::runtime::Result<super::super::Foundation::Deferral>792     pub fn GetDeferral(&self) -> ::windows::runtime::Result<super::super::Foundation::Deferral> {
793         let this = self;
794         unsafe {
795             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
796             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Deferral>(result__)
797         }
798     }
799 }
800 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferRangesDownloadedEventArgs {
801     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundTransferRangesDownloadedEventArgs;{3ebc7453-bf48-4a88-9248-b0c165184f5c})");
802 }
803 unsafe impl ::windows::runtime::Interface for BackgroundTransferRangesDownloadedEventArgs {
804     type Vtable = IBackgroundTransferRangesDownloadedEventArgs_abi;
805     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1052537939, 48968, 19080, [146, 72, 176, 193, 101, 24, 79, 92]);
806 }
807 impl ::windows::runtime::RuntimeName for BackgroundTransferRangesDownloadedEventArgs {
808     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundTransferRangesDownloadedEventArgs";
809 }
810 impl ::std::convert::From<BackgroundTransferRangesDownloadedEventArgs> for ::windows::runtime::IUnknown {
from(value: BackgroundTransferRangesDownloadedEventArgs) -> Self811     fn from(value: BackgroundTransferRangesDownloadedEventArgs) -> Self {
812         unsafe { ::std::mem::transmute(value) }
813     }
814 }
815 impl ::std::convert::From<&BackgroundTransferRangesDownloadedEventArgs> for ::windows::runtime::IUnknown {
from(value: &BackgroundTransferRangesDownloadedEventArgs) -> Self816     fn from(value: &BackgroundTransferRangesDownloadedEventArgs) -> Self {
817         ::std::convert::From::from(::std::clone::Clone::clone(value))
818     }
819 }
820 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundTransferRangesDownloadedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>821     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
822         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
823     }
824 }
825 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundTransferRangesDownloadedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>826     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
827         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
828     }
829 }
830 impl ::std::convert::From<BackgroundTransferRangesDownloadedEventArgs> for ::windows::runtime::IInspectable {
from(value: BackgroundTransferRangesDownloadedEventArgs) -> Self831     fn from(value: BackgroundTransferRangesDownloadedEventArgs) -> Self {
832         value.0
833     }
834 }
835 impl ::std::convert::From<&BackgroundTransferRangesDownloadedEventArgs> for ::windows::runtime::IInspectable {
from(value: &BackgroundTransferRangesDownloadedEventArgs) -> Self836     fn from(value: &BackgroundTransferRangesDownloadedEventArgs) -> Self {
837         value.0.clone()
838     }
839 }
840 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundTransferRangesDownloadedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>841     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
842         ::windows::runtime::Param::Owned(self.0)
843     }
844 }
845 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundTransferRangesDownloadedEventArgs {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>846     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
847         ::windows::runtime::Param::Borrowed(&self.0)
848     }
849 }
850 unsafe impl ::std::marker::Send for BackgroundTransferRangesDownloadedEventArgs {}
851 unsafe impl ::std::marker::Sync for BackgroundTransferRangesDownloadedEventArgs {}
852 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
853 #[repr(transparent)]
854 pub struct BackgroundTransferStatus(pub i32);
855 impl BackgroundTransferStatus {
856     pub const Idle: BackgroundTransferStatus = BackgroundTransferStatus(0i32);
857     pub const Running: BackgroundTransferStatus = BackgroundTransferStatus(1i32);
858     pub const PausedByApplication: BackgroundTransferStatus = BackgroundTransferStatus(2i32);
859     pub const PausedCostedNetwork: BackgroundTransferStatus = BackgroundTransferStatus(3i32);
860     pub const PausedNoNetwork: BackgroundTransferStatus = BackgroundTransferStatus(4i32);
861     pub const Completed: BackgroundTransferStatus = BackgroundTransferStatus(5i32);
862     pub const Canceled: BackgroundTransferStatus = BackgroundTransferStatus(6i32);
863     pub const Error: BackgroundTransferStatus = BackgroundTransferStatus(7i32);
864     pub const PausedRecoverableWebErrorStatus: BackgroundTransferStatus = BackgroundTransferStatus(8i32);
865     pub const PausedSystemPolicy: BackgroundTransferStatus = BackgroundTransferStatus(32i32);
866 }
867 impl ::std::convert::From<i32> for BackgroundTransferStatus {
from(value: i32) -> Self868     fn from(value: i32) -> Self {
869         Self(value)
870     }
871 }
872 unsafe impl ::windows::runtime::Abi for BackgroundTransferStatus {
873     type Abi = Self;
874     type DefaultType = Self;
875 }
876 unsafe impl ::windows::runtime::RuntimeType for BackgroundTransferStatus {
877     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"enum(Windows.Networking.BackgroundTransfer.BackgroundTransferStatus;i4)");
878 }
879 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
880 #[repr(C)]
881 pub struct BackgroundUploadProgress {
882     pub BytesReceived: u64,
883     pub BytesSent: u64,
884     pub TotalBytesToReceive: u64,
885     pub TotalBytesToSend: u64,
886     pub Status: BackgroundTransferStatus,
887     pub HasResponseChanged: bool,
888     pub HasRestarted: bool,
889 }
890 impl BackgroundUploadProgress {}
891 impl ::std::default::Default for BackgroundUploadProgress {
default() -> Self892     fn default() -> Self {
893         unsafe { ::std::mem::zeroed() }
894     }
895 }
896 impl ::std::fmt::Debug for BackgroundUploadProgress {
fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result897     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
898         fmt.debug_struct("BackgroundUploadProgress")
899             .field("BytesReceived", &self.BytesReceived)
900             .field("BytesSent", &self.BytesSent)
901             .field("TotalBytesToReceive", &self.TotalBytesToReceive)
902             .field("TotalBytesToSend", &self.TotalBytesToSend)
903             .field("Status", &self.Status)
904             .field("HasResponseChanged", &self.HasResponseChanged)
905             .field("HasRestarted", &self.HasRestarted)
906             .finish()
907     }
908 }
909 impl ::std::cmp::PartialEq for BackgroundUploadProgress {
eq(&self, other: &Self) -> bool910     fn eq(&self, other: &Self) -> bool {
911         self.BytesReceived == other.BytesReceived && self.BytesSent == other.BytesSent && self.TotalBytesToReceive == other.TotalBytesToReceive && self.TotalBytesToSend == other.TotalBytesToSend && self.Status == other.Status && self.HasResponseChanged == other.HasResponseChanged && self.HasRestarted == other.HasRestarted
912     }
913 }
914 impl ::std::cmp::Eq for BackgroundUploadProgress {}
915 unsafe impl ::windows::runtime::Abi for BackgroundUploadProgress {
916     type Abi = Self;
917     type DefaultType = Self;
918 }
919 unsafe impl ::windows::runtime::RuntimeType for BackgroundUploadProgress {
920     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"struct(Windows.Networking.BackgroundTransfer.BackgroundUploadProgress;u8;u8;u8;u8;enum(Windows.Networking.BackgroundTransfer.BackgroundTransferStatus;i4);b1;b1)");
921 }
922 #[repr(transparent)]
923 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
924 pub struct BackgroundUploader(::windows::runtime::IInspectable);
925 impl BackgroundUploader {
new() -> ::windows::runtime::Result<Self>926     pub fn new() -> ::windows::runtime::Result<Self> {
927         Self::IActivationFactory(|f| f.activate_instance::<Self>())
928     }
IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>929     fn IActivationFactory<R, F: FnOnce(&::windows::runtime::IActivationFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
930         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundUploader, ::windows::runtime::IActivationFactory> = ::windows::runtime::FactoryCache::new();
931         unsafe { SHARED.call(callback) }
932     }
933     #[cfg(all(feature = "Foundation", feature = "Storage"))]
CreateUpload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, sourcefile: Param1) -> ::windows::runtime::Result<UploadOperation>934     pub fn CreateUpload<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::IStorageFile>>(&self, uri: Param0, sourcefile: Param1) -> ::windows::runtime::Result<UploadOperation> {
935         let this = self;
936         unsafe {
937             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
938             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), uri.into_param().abi(), sourcefile.into_param().abi(), &mut result__).from_abi::<UploadOperation>(result__)
939         }
940     }
941     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))]
CreateUploadFromStreamAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IInputStream>>(&self, uri: Param0, sourcestream: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>>942     pub fn CreateUploadFromStreamAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Storage::Streams::IInputStream>>(&self, uri: Param0, sourcestream: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>> {
943         let this = self;
944         unsafe {
945             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
946             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), uri.into_param().abi(), sourcestream.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UploadOperation>>(result__)
947         }
948     }
949     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
CreateUploadWithFormDataAndAutoBoundaryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>>(&self, uri: Param0, parts: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>>950     pub fn CreateUploadWithFormDataAndAutoBoundaryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>>(&self, uri: Param0, parts: Param1) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>> {
951         let this = self;
952         unsafe {
953             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
954             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), uri.into_param().abi(), parts.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UploadOperation>>(result__)
955         }
956     }
957     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
CreateUploadWithSubTypeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, uri: Param0, parts: Param1, subtype: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>>958     pub fn CreateUploadWithSubTypeAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, uri: Param0, parts: Param1, subtype: Param2) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>> {
959         let this = self;
960         unsafe {
961             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
962             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), uri.into_param().abi(), parts.into_param().abi(), subtype.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UploadOperation>>(result__)
963         }
964     }
965     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
CreateUploadWithSubTypeAndBoundaryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param3: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>( &self, uri: Param0, parts: Param1, subtype: Param2, boundary: Param3, ) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>>966     pub fn CreateUploadWithSubTypeAndBoundaryAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<BackgroundTransferContentPart>>, Param2: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param3: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(
967         &self,
968         uri: Param0,
969         parts: Param1,
970         subtype: Param2,
971         boundary: Param3,
972     ) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UploadOperation>> {
973         let this = self;
974         unsafe {
975             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
976             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), uri.into_param().abi(), parts.into_param().abi(), subtype.into_param().abi(), boundary.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UploadOperation>>(result__)
977         }
978     }
SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>979     pub fn SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
980         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
981         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
982     }
983     #[cfg(feature = "Security_Credentials")]
ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>984     pub fn ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
985         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
986         unsafe {
987             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
988             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
989         }
990     }
991     #[cfg(feature = "Security_Credentials")]
SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>992     pub fn SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
993         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
994         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
995     }
996     #[cfg(feature = "Security_Credentials")]
ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>997     pub fn ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
998         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
999         unsafe {
1000             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1001             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
1002         }
1003     }
1004     #[cfg(feature = "Security_Credentials")]
SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>1005     pub fn SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
1006         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1007         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
1008     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1009     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1010         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1011         unsafe {
1012             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1013             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1014         }
1015     }
SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1016     pub fn SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1017         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1018         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1019     }
1020     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1021     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1022         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1023         unsafe {
1024             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1025             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1026         }
1027     }
1028     #[cfg(feature = "deprecated")]
SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1029     pub fn SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1030         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1031         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1032     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>1033     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
1034         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1035         unsafe {
1036             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
1037             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
1038         }
1039     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>1040     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
1041         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferBase>(self)?;
1042         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
1043     }
TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup>1044     pub fn TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup> {
1045         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1046         unsafe {
1047             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1048             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferGroup>(result__)
1049         }
1050     }
SetTransferGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(&self, value: Param0) -> ::windows::runtime::Result<()>1051     pub fn SetTransferGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1052         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1053         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1054     }
1055     #[cfg(feature = "UI_Notifications")]
SuccessToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification>1056     pub fn SuccessToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification> {
1057         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1058         unsafe {
1059             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1060             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::ToastNotification>(result__)
1061         }
1062     }
1063     #[cfg(feature = "UI_Notifications")]
SetSuccessToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>1064     pub fn SetSuccessToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1065         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1066         unsafe { (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1067     }
1068     #[cfg(feature = "UI_Notifications")]
FailureToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification>1069     pub fn FailureToastNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::ToastNotification> {
1070         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1071         unsafe {
1072             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1073             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::ToastNotification>(result__)
1074         }
1075     }
1076     #[cfg(feature = "UI_Notifications")]
SetFailureToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>1077     pub fn SetFailureToastNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::ToastNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1078         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1079         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1080     }
1081     #[cfg(feature = "UI_Notifications")]
SuccessTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification>1082     pub fn SuccessTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification> {
1083         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1084         unsafe {
1085             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1086             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::TileNotification>(result__)
1087         }
1088     }
1089     #[cfg(feature = "UI_Notifications")]
SetSuccessTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>1090     pub fn SetSuccessTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1091         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1092         unsafe { (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1093     }
1094     #[cfg(feature = "UI_Notifications")]
FailureTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification>1095     pub fn FailureTileNotification(&self) -> ::windows::runtime::Result<super::super::UI::Notifications::TileNotification> {
1096         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1097         unsafe {
1098             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1099             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::UI::Notifications::TileNotification>(result__)
1100         }
1101     }
1102     #[cfg(feature = "UI_Notifications")]
SetFailureTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()>1103     pub fn SetFailureTileNotification<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::UI::Notifications::TileNotification>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1104         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader2>(self)?;
1105         unsafe { (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1106     }
CompletionGroup(&self) -> ::windows::runtime::Result<BackgroundTransferCompletionGroup>1107     pub fn CompletionGroup(&self) -> ::windows::runtime::Result<BackgroundTransferCompletionGroup> {
1108         let this = &::windows::runtime::Interface::cast::<IBackgroundUploader3>(self)?;
1109         unsafe {
1110             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1111             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCompletionGroup>(result__)
1112         }
1113     }
CreateWithCompletionGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferCompletionGroup>>(completiongroup: Param0) -> ::windows::runtime::Result<BackgroundUploader>1114     pub fn CreateWithCompletionGroup<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferCompletionGroup>>(completiongroup: Param0) -> ::windows::runtime::Result<BackgroundUploader> {
1115         Self::IBackgroundUploaderFactory(|this| unsafe {
1116             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1117             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), completiongroup.into_param().abi(), &mut result__).from_abi::<BackgroundUploader>(result__)
1118         })
1119     }
1120     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentUploadsAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>1121     pub fn GetCurrentUploadsAsync() -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>> {
1122         Self::IBackgroundUploaderStaticMethods(|this| unsafe {
1123             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1124             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>(result__)
1125         })
1126     }
1127     #[cfg(feature = "deprecated")]
1128     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentUploadsForGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>1129     pub fn GetCurrentUploadsForGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>> {
1130         Self::IBackgroundUploaderStaticMethods(|this| unsafe {
1131             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1132             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), group.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>(result__)
1133         })
1134     }
1135     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
GetCurrentUploadsForTransferGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>1136     pub fn GetCurrentUploadsForTransferGroupAsync<'a, Param0: ::windows::runtime::IntoParam<'a, BackgroundTransferGroup>>(group: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>> {
1137         Self::IBackgroundUploaderStaticMethods2(|this| unsafe {
1138             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1139             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), group.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<super::super::Foundation::Collections::IVectorView<UploadOperation>>>(result__)
1140         })
1141     }
1142     #[cfg(feature = "deprecated")]
1143     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
RequestUnconstrainedUploadsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<UploadOperation>>>(operations: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>>1144     pub fn RequestUnconstrainedUploadsAsync<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Collections::IIterable<UploadOperation>>>(operations: Param0) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>> {
1145         Self::IBackgroundUploaderUserConsent(|this| unsafe {
1146             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1147             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), operations.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::IAsyncOperation<UnconstrainedTransferRequestResult>>(result__)
1148         })
1149     }
IBackgroundUploaderFactory<R, F: FnOnce(&IBackgroundUploaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1150     pub fn IBackgroundUploaderFactory<R, F: FnOnce(&IBackgroundUploaderFactory) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1151         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundUploader, IBackgroundUploaderFactory> = ::windows::runtime::FactoryCache::new();
1152         unsafe { SHARED.call(callback) }
1153     }
IBackgroundUploaderStaticMethods<R, F: FnOnce(&IBackgroundUploaderStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1154     pub fn IBackgroundUploaderStaticMethods<R, F: FnOnce(&IBackgroundUploaderStaticMethods) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1155         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundUploader, IBackgroundUploaderStaticMethods> = ::windows::runtime::FactoryCache::new();
1156         unsafe { SHARED.call(callback) }
1157     }
IBackgroundUploaderStaticMethods2<R, F: FnOnce(&IBackgroundUploaderStaticMethods2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1158     pub fn IBackgroundUploaderStaticMethods2<R, F: FnOnce(&IBackgroundUploaderStaticMethods2) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1159         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundUploader, IBackgroundUploaderStaticMethods2> = ::windows::runtime::FactoryCache::new();
1160         unsafe { SHARED.call(callback) }
1161     }
IBackgroundUploaderUserConsent<R, F: FnOnce(&IBackgroundUploaderUserConsent) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1162     pub fn IBackgroundUploaderUserConsent<R, F: FnOnce(&IBackgroundUploaderUserConsent) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1163         static mut SHARED: ::windows::runtime::FactoryCache<BackgroundUploader, IBackgroundUploaderUserConsent> = ::windows::runtime::FactoryCache::new();
1164         unsafe { SHARED.call(callback) }
1165     }
1166 }
1167 unsafe impl ::windows::runtime::RuntimeType for BackgroundUploader {
1168     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.BackgroundUploader;{c595c9ae-cead-465b-8801-c55ac90a01ce})");
1169 }
1170 unsafe impl ::windows::runtime::Interface for BackgroundUploader {
1171     type Vtable = IBackgroundUploader_abi;
1172     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3314928046, 52909, 18011, [136, 1, 197, 90, 201, 10, 1, 206]);
1173 }
1174 impl ::windows::runtime::RuntimeName for BackgroundUploader {
1175     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.BackgroundUploader";
1176 }
1177 impl ::std::convert::From<BackgroundUploader> for ::windows::runtime::IUnknown {
from(value: BackgroundUploader) -> Self1178     fn from(value: BackgroundUploader) -> Self {
1179         unsafe { ::std::mem::transmute(value) }
1180     }
1181 }
1182 impl ::std::convert::From<&BackgroundUploader> for ::windows::runtime::IUnknown {
from(value: &BackgroundUploader) -> Self1183     fn from(value: &BackgroundUploader) -> Self {
1184         ::std::convert::From::from(::std::clone::Clone::clone(value))
1185     }
1186 }
1187 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1188     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1189         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1190     }
1191 }
1192 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1193     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1194         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1195     }
1196 }
1197 impl ::std::convert::From<BackgroundUploader> for ::windows::runtime::IInspectable {
from(value: BackgroundUploader) -> Self1198     fn from(value: BackgroundUploader) -> Self {
1199         value.0
1200     }
1201 }
1202 impl ::std::convert::From<&BackgroundUploader> for ::windows::runtime::IInspectable {
from(value: &BackgroundUploader) -> Self1203     fn from(value: &BackgroundUploader) -> Self {
1204         value.0.clone()
1205     }
1206 }
1207 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1208     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1209         ::windows::runtime::Param::Owned(self.0)
1210     }
1211 }
1212 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1213     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1214         ::windows::runtime::Param::Borrowed(&self.0)
1215     }
1216 }
1217 impl ::std::convert::TryFrom<BackgroundUploader> for IBackgroundTransferBase {
1218     type Error = ::windows::runtime::Error;
try_from(value: BackgroundUploader) -> ::windows::runtime::Result<Self>1219     fn try_from(value: BackgroundUploader) -> ::windows::runtime::Result<Self> {
1220         ::std::convert::TryFrom::try_from(&value)
1221     }
1222 }
1223 impl ::std::convert::TryFrom<&BackgroundUploader> for IBackgroundTransferBase {
1224     type Error = ::windows::runtime::Error;
try_from(value: &BackgroundUploader) -> ::windows::runtime::Result<Self>1225     fn try_from(value: &BackgroundUploader) -> ::windows::runtime::Result<Self> {
1226         ::windows::runtime::Interface::cast(value)
1227     }
1228 }
1229 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferBase> for BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase>1230     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase> {
1231         ::windows::runtime::IntoParam::into_param(&self)
1232     }
1233 }
1234 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferBase> for &BackgroundUploader {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase>1235     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferBase> {
1236         ::std::convert::TryInto::<IBackgroundTransferBase>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1237     }
1238 }
1239 unsafe impl ::std::marker::Send for BackgroundUploader {}
1240 unsafe impl ::std::marker::Sync for BackgroundUploader {}
1241 pub struct ContentPrefetcher {}
1242 impl ContentPrefetcher {
1243     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))]
ContentUris() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::super::Foundation::Uri>>1244     pub fn ContentUris() -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::super::Foundation::Uri>> {
1245         Self::IContentPrefetcher(|this| unsafe {
1246             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1247             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::super::Foundation::Uri>>(result__)
1248         })
1249     }
1250     #[cfg(feature = "Foundation")]
SetIndirectContentUri<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(value: Param0) -> ::windows::runtime::Result<()>1251     pub fn SetIndirectContentUri<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(value: Param0) -> ::windows::runtime::Result<()> {
1252         Self::IContentPrefetcher(|this| unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() })
1253     }
1254     #[cfg(feature = "Foundation")]
IndirectContentUri() -> ::windows::runtime::Result<super::super::Foundation::Uri>1255     pub fn IndirectContentUri() -> ::windows::runtime::Result<super::super::Foundation::Uri> {
1256         Self::IContentPrefetcher(|this| unsafe {
1257             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1258             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Uri>(result__)
1259         })
1260     }
1261     #[cfg(feature = "Foundation")]
LastSuccessfulPrefetchTime() -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>>1262     pub fn LastSuccessfulPrefetchTime() -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Foundation::DateTime>> {
1263         Self::IContentPrefetcherTime(|this| unsafe {
1264             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1265             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Foundation::DateTime>>(result__)
1266         })
1267     }
IContentPrefetcher<R, F: FnOnce(&IContentPrefetcher) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1268     pub fn IContentPrefetcher<R, F: FnOnce(&IContentPrefetcher) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1269         static mut SHARED: ::windows::runtime::FactoryCache<ContentPrefetcher, IContentPrefetcher> = ::windows::runtime::FactoryCache::new();
1270         unsafe { SHARED.call(callback) }
1271     }
IContentPrefetcherTime<R, F: FnOnce(&IContentPrefetcherTime) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R>1272     pub fn IContentPrefetcherTime<R, F: FnOnce(&IContentPrefetcherTime) -> ::windows::runtime::Result<R>>(callback: F) -> ::windows::runtime::Result<R> {
1273         static mut SHARED: ::windows::runtime::FactoryCache<ContentPrefetcher, IContentPrefetcherTime> = ::windows::runtime::FactoryCache::new();
1274         unsafe { SHARED.call(callback) }
1275     }
1276 }
1277 impl ::windows::runtime::RuntimeName for ContentPrefetcher {
1278     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.ContentPrefetcher";
1279 }
1280 #[repr(transparent)]
1281 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1282 pub struct DownloadOperation(::windows::runtime::IInspectable);
1283 impl DownloadOperation {
1284     #[cfg(feature = "Storage")]
ResultFile(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile>1285     pub fn ResultFile(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile> {
1286         let this = self;
1287         unsafe {
1288             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1289             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::IStorageFile>(result__)
1290         }
1291     }
Progress(&self) -> ::windows::runtime::Result<BackgroundDownloadProgress>1292     pub fn Progress(&self) -> ::windows::runtime::Result<BackgroundDownloadProgress> {
1293         let this = self;
1294         unsafe {
1295             let mut result__: BackgroundDownloadProgress = ::std::mem::zeroed();
1296             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundDownloadProgress>(result__)
1297         }
1298     }
1299     #[cfg(feature = "Foundation")]
StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>>1300     pub fn StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>> {
1301         let this = self;
1302         unsafe {
1303             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1304             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>>(result__)
1305         }
1306     }
1307     #[cfg(feature = "Foundation")]
AttachAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>>1308     pub fn AttachAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>> {
1309         let this = self;
1310         unsafe {
1311             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1312             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<DownloadOperation, DownloadOperation>>(result__)
1313         }
1314     }
Pause(&self) -> ::windows::runtime::Result<()>1315     pub fn Pause(&self) -> ::windows::runtime::Result<()> {
1316         let this = self;
1317         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this)).ok() }
1318     }
Resume(&self) -> ::windows::runtime::Result<()>1319     pub fn Resume(&self) -> ::windows::runtime::Result<()> {
1320         let this = self;
1321         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this)).ok() }
1322     }
Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>1323     pub fn Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
1324         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1325         unsafe {
1326             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
1327             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
1328         }
1329     }
1330     #[cfg(feature = "Foundation")]
RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri>1331     pub fn RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri> {
1332         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1333         unsafe {
1334             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1335             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Uri>(result__)
1336         }
1337     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1338     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1339         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1340         unsafe {
1341             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1342             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1343         }
1344     }
1345     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1346     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1347         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1348         unsafe {
1349             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1350             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1351         }
1352     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>1353     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
1354         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1355         unsafe {
1356             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
1357             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
1358         }
1359     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>1360     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
1361         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1362         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
1363     }
1364     #[cfg(feature = "Storage_Streams")]
GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream>1365     pub fn GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream> {
1366         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1367         unsafe {
1368             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1369             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<super::super::Storage::Streams::IInputStream>(result__)
1370         }
1371     }
GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation>1372     pub fn GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation> {
1373         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
1374         unsafe {
1375             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1376             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ResponseInformation>(result__)
1377         }
1378     }
Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority>1379     pub fn Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority> {
1380         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperationPriority>(self)?;
1381         unsafe {
1382             let mut result__: BackgroundTransferPriority = ::std::mem::zeroed();
1383             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferPriority>(result__)
1384         }
1385     }
SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()>1386     pub fn SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()> {
1387         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperationPriority>(self)?;
1388         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1389     }
TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup>1390     pub fn TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup> {
1391         let this = &::windows::runtime::Interface::cast::<IDownloadOperation2>(self)?;
1392         unsafe {
1393             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1394             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferGroup>(result__)
1395         }
1396     }
IsRandomAccessRequired(&self) -> ::windows::runtime::Result<bool>1397     pub fn IsRandomAccessRequired(&self) -> ::windows::runtime::Result<bool> {
1398         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1399         unsafe {
1400             let mut result__: bool = ::std::mem::zeroed();
1401             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
1402         }
1403     }
SetIsRandomAccessRequired(&self, value: bool) -> ::windows::runtime::Result<()>1404     pub fn SetIsRandomAccessRequired(&self, value: bool) -> ::windows::runtime::Result<()> {
1405         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1406         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
1407     }
1408     #[cfg(feature = "Storage_Streams")]
GetResultRandomAccessStreamReference(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IRandomAccessStreamReference>1409     pub fn GetResultRandomAccessStreamReference(&self) -> ::windows::runtime::Result<super::super::Storage::Streams::IRandomAccessStreamReference> {
1410         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1411         unsafe {
1412             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1413             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::Streams::IRandomAccessStreamReference>(result__)
1414         }
1415     }
1416     #[cfg(feature = "Foundation_Collections")]
GetDownloadedRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>>1417     pub fn GetDownloadedRanges(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>> {
1418         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1419         unsafe {
1420             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1421             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<BackgroundTransferFileRange>>(result__)
1422         }
1423     }
1424     #[cfg(feature = "Foundation")]
RangesDownloaded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<DownloadOperation, BackgroundTransferRangesDownloadedEventArgs>>>(&self, eventhandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken>1425     pub fn RangesDownloaded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::TypedEventHandler<DownloadOperation, BackgroundTransferRangesDownloadedEventArgs>>>(&self, eventhandler: Param0) -> ::windows::runtime::Result<super::super::Foundation::EventRegistrationToken> {
1426         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1427         unsafe {
1428             let mut result__: super::super::Foundation::EventRegistrationToken = ::std::mem::zeroed();
1429             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), eventhandler.into_param().abi(), &mut result__).from_abi::<super::super::Foundation::EventRegistrationToken>(result__)
1430         }
1431     }
1432     #[cfg(feature = "Foundation")]
RemoveRangesDownloaded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, eventcookie: Param0) -> ::windows::runtime::Result<()>1433     pub fn RemoveRangesDownloaded<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::EventRegistrationToken>>(&self, eventcookie: Param0) -> ::windows::runtime::Result<()> {
1434         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1435         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), eventcookie.into_param().abi()).ok() }
1436     }
1437     #[cfg(feature = "Foundation")]
SetRequestedUri<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::runtime::Result<()>1438     pub fn SetRequestedUri<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::Uri>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1439         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1440         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1441     }
1442     #[cfg(all(feature = "Foundation_Collections", feature = "Web"))]
RecoverableWebErrorStatuses(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::super::Web::WebErrorStatus>>1443     pub fn RecoverableWebErrorStatuses(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IVector<super::super::Web::WebErrorStatus>> {
1444         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1445         unsafe {
1446             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1447             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IVector<super::super::Web::WebErrorStatus>>(result__)
1448         }
1449     }
1450     #[cfg(all(feature = "Foundation", feature = "Web"))]
CurrentWebErrorStatus(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Web::WebErrorStatus>>1451     pub fn CurrentWebErrorStatus(&self) -> ::windows::runtime::Result<super::super::Foundation::IReference<super::super::Web::WebErrorStatus>> {
1452         let this = &::windows::runtime::Interface::cast::<IDownloadOperation3>(self)?;
1453         unsafe {
1454             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1455             (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IReference<super::super::Web::WebErrorStatus>>(result__)
1456         }
1457     }
MakeCurrentInTransferGroup(&self) -> ::windows::runtime::Result<()>1458     pub fn MakeCurrentInTransferGroup(&self) -> ::windows::runtime::Result<()> {
1459         let this = &::windows::runtime::Interface::cast::<IDownloadOperation4>(self)?;
1460         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
1461     }
SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>1462     pub fn SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
1463         let this = &::windows::runtime::Interface::cast::<IDownloadOperation5>(self)?;
1464         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
1465     }
RemoveRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0) -> ::windows::runtime::Result<()>1466     pub fn RemoveRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0) -> ::windows::runtime::Result<()> {
1467         let this = &::windows::runtime::Interface::cast::<IDownloadOperation5>(self)?;
1468         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), headername.into_param().abi()).ok() }
1469     }
1470 }
1471 unsafe impl ::windows::runtime::RuntimeType for DownloadOperation {
1472     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.DownloadOperation;{bd87ebb0-5714-4e09-ba68-bef73903b0d7})");
1473 }
1474 unsafe impl ::windows::runtime::Interface for DownloadOperation {
1475     type Vtable = IDownloadOperation_abi;
1476     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3179801520, 22292, 19977, [186, 104, 190, 247, 57, 3, 176, 215]);
1477 }
1478 impl ::windows::runtime::RuntimeName for DownloadOperation {
1479     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.DownloadOperation";
1480 }
1481 impl ::std::convert::From<DownloadOperation> for ::windows::runtime::IUnknown {
from(value: DownloadOperation) -> Self1482     fn from(value: DownloadOperation) -> Self {
1483         unsafe { ::std::mem::transmute(value) }
1484     }
1485 }
1486 impl ::std::convert::From<&DownloadOperation> for ::windows::runtime::IUnknown {
from(value: &DownloadOperation) -> Self1487     fn from(value: &DownloadOperation) -> Self {
1488         ::std::convert::From::from(::std::clone::Clone::clone(value))
1489     }
1490 }
1491 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1492     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1493         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1494     }
1495 }
1496 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1497     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1498         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1499     }
1500 }
1501 impl ::std::convert::From<DownloadOperation> for ::windows::runtime::IInspectable {
from(value: DownloadOperation) -> Self1502     fn from(value: DownloadOperation) -> Self {
1503         value.0
1504     }
1505 }
1506 impl ::std::convert::From<&DownloadOperation> for ::windows::runtime::IInspectable {
from(value: &DownloadOperation) -> Self1507     fn from(value: &DownloadOperation) -> Self {
1508         value.0.clone()
1509     }
1510 }
1511 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1512     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1513         ::windows::runtime::Param::Owned(self.0)
1514     }
1515 }
1516 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1517     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1518         ::windows::runtime::Param::Borrowed(&self.0)
1519     }
1520 }
1521 impl ::std::convert::TryFrom<DownloadOperation> for IBackgroundTransferOperation {
1522     type Error = ::windows::runtime::Error;
try_from(value: DownloadOperation) -> ::windows::runtime::Result<Self>1523     fn try_from(value: DownloadOperation) -> ::windows::runtime::Result<Self> {
1524         ::std::convert::TryFrom::try_from(&value)
1525     }
1526 }
1527 impl ::std::convert::TryFrom<&DownloadOperation> for IBackgroundTransferOperation {
1528     type Error = ::windows::runtime::Error;
try_from(value: &DownloadOperation) -> ::windows::runtime::Result<Self>1529     fn try_from(value: &DownloadOperation) -> ::windows::runtime::Result<Self> {
1530         ::windows::runtime::Interface::cast(value)
1531     }
1532 }
1533 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperation> for DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation>1534     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation> {
1535         ::windows::runtime::IntoParam::into_param(&self)
1536     }
1537 }
1538 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperation> for &DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation>1539     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation> {
1540         ::std::convert::TryInto::<IBackgroundTransferOperation>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1541     }
1542 }
1543 impl ::std::convert::TryFrom<DownloadOperation> for IBackgroundTransferOperationPriority {
1544     type Error = ::windows::runtime::Error;
try_from(value: DownloadOperation) -> ::windows::runtime::Result<Self>1545     fn try_from(value: DownloadOperation) -> ::windows::runtime::Result<Self> {
1546         ::std::convert::TryFrom::try_from(&value)
1547     }
1548 }
1549 impl ::std::convert::TryFrom<&DownloadOperation> for IBackgroundTransferOperationPriority {
1550     type Error = ::windows::runtime::Error;
try_from(value: &DownloadOperation) -> ::windows::runtime::Result<Self>1551     fn try_from(value: &DownloadOperation) -> ::windows::runtime::Result<Self> {
1552         ::windows::runtime::Interface::cast(value)
1553     }
1554 }
1555 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperationPriority> for DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority>1556     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority> {
1557         ::windows::runtime::IntoParam::into_param(&self)
1558     }
1559 }
1560 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperationPriority> for &DownloadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority>1561     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority> {
1562         ::std::convert::TryInto::<IBackgroundTransferOperationPriority>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
1563     }
1564 }
1565 unsafe impl ::std::marker::Send for DownloadOperation {}
1566 unsafe impl ::std::marker::Sync for DownloadOperation {}
1567 #[repr(transparent)]
1568 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1569 #[doc(hidden)]
1570 pub struct IBackgroundDownloader(::windows::runtime::IInspectable);
1571 unsafe impl ::windows::runtime::Interface for IBackgroundDownloader {
1572     type Vtable = IBackgroundDownloader_abi;
1573     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3251082035, 26185, 19229, [168, 38, 164, 179, 221, 35, 77, 11]);
1574 }
1575 #[repr(C)]
1576 #[doc(hidden)]
1577 pub struct IBackgroundDownloader_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, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1582     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1583     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1584     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, resultfile: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1585     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
1586     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, resultfile: ::windows::runtime::RawPtr, requestbodyfile: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1587     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
1588     #[cfg(all(feature = "Foundation", feature = "Storage", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, resultfile: ::windows::runtime::RawPtr, requestbodystream: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1589     #[cfg(not(all(feature = "Foundation", feature = "Storage", feature = "Storage_Streams")))] usize,
1590 );
1591 #[repr(transparent)]
1592 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1593 #[doc(hidden)]
1594 pub struct IBackgroundDownloader2(::windows::runtime::IInspectable);
1595 unsafe impl ::windows::runtime::Interface for IBackgroundDownloader2 {
1596     type Vtable = IBackgroundDownloader2_abi;
1597     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2840221767, 13453, 18997, [137, 14, 138, 30, 243, 121, 132, 121]);
1598 }
1599 #[repr(C)]
1600 #[doc(hidden)]
1601 pub struct IBackgroundDownloader2_abi(
1602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1604     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1605     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1606     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1610     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1611     #[cfg(not(feature = "UI_Notifications"))] usize,
1612     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1613     #[cfg(not(feature = "UI_Notifications"))] usize,
1614     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1615     #[cfg(not(feature = "UI_Notifications"))] usize,
1616     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1617     #[cfg(not(feature = "UI_Notifications"))] usize,
1618     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1619     #[cfg(not(feature = "UI_Notifications"))] usize,
1620     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1621     #[cfg(not(feature = "UI_Notifications"))] usize,
1622     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1623     #[cfg(not(feature = "UI_Notifications"))] usize,
1624     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1625     #[cfg(not(feature = "UI_Notifications"))] usize,
1626 );
1627 #[repr(transparent)]
1628 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1629 #[doc(hidden)]
1630 pub struct IBackgroundDownloader3(::windows::runtime::IInspectable);
1631 unsafe impl ::windows::runtime::Interface for IBackgroundDownloader3 {
1632     type Vtable = IBackgroundDownloader3_abi;
1633     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3508177992, 34536, 18658, [182, 21, 105, 118, 170, 191, 134, 29]);
1634 }
1635 #[repr(C)]
1636 #[doc(hidden)]
1637 pub struct IBackgroundDownloader3_abi(
1638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1644     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1645 );
1646 #[repr(transparent)]
1647 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1648 #[doc(hidden)]
1649 pub struct IBackgroundDownloaderFactory(::windows::runtime::IInspectable);
1650 unsafe impl ::windows::runtime::Interface for IBackgroundDownloaderFactory {
1651     type Vtable = IBackgroundDownloaderFactory_abi;
1652     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(646147108, 55454, 18164, [162, 154, 79, 77, 79, 20, 65, 85]);
1653 }
1654 #[repr(C)]
1655 #[doc(hidden)]
1656 pub struct IBackgroundDownloaderFactory_abi(
1657     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1658     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1659     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1660     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1662     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, completiongroup: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1664 );
1665 #[repr(transparent)]
1666 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1667 #[doc(hidden)]
1668 pub struct IBackgroundDownloaderStaticMethods(::windows::runtime::IInspectable);
1669 unsafe impl ::windows::runtime::Interface for IBackgroundDownloaderStaticMethods {
1670     type Vtable = IBackgroundDownloaderStaticMethods_abi;
1671     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1386633781, 50766, 17004, [153, 25, 84, 13, 13, 33, 166, 80]);
1672 }
1673 #[repr(C)]
1674 #[doc(hidden)]
1675 pub struct IBackgroundDownloaderStaticMethods_abi(
1676     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1677     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1678     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1679     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1682     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1683     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1684     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, group: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1685     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1686 );
1687 #[repr(transparent)]
1688 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1689 #[doc(hidden)]
1690 pub struct IBackgroundDownloaderStaticMethods2(::windows::runtime::IInspectable);
1691 unsafe impl ::windows::runtime::Interface for IBackgroundDownloaderStaticMethods2 {
1692     type Vtable = IBackgroundDownloaderStaticMethods2_abi;
1693     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(799675175, 6868, 19621, [178, 205, 8, 219, 240, 116, 106, 254]);
1694 }
1695 #[repr(C)]
1696 #[doc(hidden)]
1697 pub struct IBackgroundDownloaderStaticMethods2_abi(
1698     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1699     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1700     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1701     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1702     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1703     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1704     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, group: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1705     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1706 );
1707 #[repr(transparent)]
1708 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1709 #[doc(hidden)]
1710 pub struct IBackgroundDownloaderUserConsent(::windows::runtime::IInspectable);
1711 unsafe impl ::windows::runtime::Interface for IBackgroundDownloaderUserConsent {
1712     type Vtable = IBackgroundDownloaderUserConsent_abi;
1713     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1561651462, 37478, 18440, [189, 113, 89, 37, 242, 163, 19, 10]);
1714 }
1715 #[repr(C)]
1716 #[doc(hidden)]
1717 pub struct IBackgroundDownloaderUserConsent_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, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1722     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1723     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1724     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, operations: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1725     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
1726 );
1727 #[repr(transparent)]
1728 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1729 pub struct IBackgroundTransferBase(::windows::runtime::IInspectable);
1730 unsafe impl ::windows::runtime::Interface for IBackgroundTransferBase {
1731     type Vtable = IBackgroundTransferBase_abi;
1732     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(714973776, 51049, 17804, [175, 232, 254, 184, 212, 211, 178, 239]);
1733 }
1734 impl IBackgroundTransferBase {
SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>1735     pub fn SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
1736         let this = self;
1737         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
1738     }
1739     #[cfg(feature = "Security_Credentials")]
ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>1740     pub fn ServerCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
1741         let this = self;
1742         unsafe {
1743             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1744             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
1745         }
1746     }
1747     #[cfg(feature = "Security_Credentials")]
SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>1748     pub fn SetServerCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
1749         let this = self;
1750         unsafe { (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
1751     }
1752     #[cfg(feature = "Security_Credentials")]
ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential>1753     pub fn ProxyCredential(&self) -> ::windows::runtime::Result<super::super::Security::Credentials::PasswordCredential> {
1754         let this = self;
1755         unsafe {
1756             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1757             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Security::Credentials::PasswordCredential>(result__)
1758         }
1759     }
1760     #[cfg(feature = "Security_Credentials")]
SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()>1761     pub fn SetProxyCredential<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Security::Credentials::PasswordCredential>>(&self, credential: Param0) -> ::windows::runtime::Result<()> {
1762         let this = self;
1763         unsafe { (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), credential.into_param().abi()).ok() }
1764     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1765     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1766         let this = self;
1767         unsafe {
1768             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1769             (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1770         }
1771     }
SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1772     pub fn SetMethod<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1773         let this = self;
1774         unsafe { (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1775     }
1776     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>1777     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
1778         let this = self;
1779         unsafe {
1780             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
1781             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
1782         }
1783     }
1784     #[cfg(feature = "deprecated")]
SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()>1785     pub fn SetGroup<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, value: Param0) -> ::windows::runtime::Result<()> {
1786         let this = self;
1787         unsafe { (::windows::runtime::Interface::vtable(this).14)(::std::mem::transmute_copy(this), value.into_param().abi()).ok() }
1788     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>1789     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
1790         let this = self;
1791         unsafe {
1792             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
1793             (::windows::runtime::Interface::vtable(this).15)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
1794         }
1795     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>1796     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
1797         let this = self;
1798         unsafe { (::windows::runtime::Interface::vtable(this).16)(::std::mem::transmute_copy(this), value).ok() }
1799     }
1800 }
1801 unsafe impl ::windows::runtime::RuntimeType for IBackgroundTransferBase {
1802     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{2a9da250-c769-458c-afe8-feb8d4d3b2ef}");
1803 }
1804 impl ::std::convert::From<IBackgroundTransferBase> for ::windows::runtime::IUnknown {
from(value: IBackgroundTransferBase) -> Self1805     fn from(value: IBackgroundTransferBase) -> Self {
1806         unsafe { ::std::mem::transmute(value) }
1807     }
1808 }
1809 impl ::std::convert::From<&IBackgroundTransferBase> for ::windows::runtime::IUnknown {
from(value: &IBackgroundTransferBase) -> Self1810     fn from(value: &IBackgroundTransferBase) -> Self {
1811         ::std::convert::From::from(::std::clone::Clone::clone(value))
1812     }
1813 }
1814 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IBackgroundTransferBase {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1815     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1816         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1817     }
1818 }
1819 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IBackgroundTransferBase {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1820     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1821         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1822     }
1823 }
1824 impl ::std::convert::From<IBackgroundTransferBase> for ::windows::runtime::IInspectable {
from(value: IBackgroundTransferBase) -> Self1825     fn from(value: IBackgroundTransferBase) -> Self {
1826         value.0
1827     }
1828 }
1829 impl ::std::convert::From<&IBackgroundTransferBase> for ::windows::runtime::IInspectable {
from(value: &IBackgroundTransferBase) -> Self1830     fn from(value: &IBackgroundTransferBase) -> Self {
1831         value.0.clone()
1832     }
1833 }
1834 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IBackgroundTransferBase {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1835     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1836         ::windows::runtime::Param::Owned(self.0)
1837     }
1838 }
1839 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IBackgroundTransferBase {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1840     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1841         ::windows::runtime::Param::Borrowed(&self.0)
1842     }
1843 }
1844 #[repr(C)]
1845 #[doc(hidden)]
1846 pub struct IBackgroundTransferBase_abi(
1847     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1848     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1849     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1850     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1851     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1852     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1853     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, headervalue: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1854     #[cfg(feature = "Security_Credentials")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1855     #[cfg(not(feature = "Security_Credentials"))] usize,
1856     #[cfg(feature = "Security_Credentials")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, credential: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1857     #[cfg(not(feature = "Security_Credentials"))] usize,
1858     #[cfg(feature = "Security_Credentials")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1859     #[cfg(not(feature = "Security_Credentials"))] usize,
1860     #[cfg(feature = "Security_Credentials")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, credential: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1861     #[cfg(not(feature = "Security_Credentials"))] usize,
1862     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1863     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1864     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1865     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1866     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundTransferCostPolicy) -> ::windows::runtime::HRESULT,
1867     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: BackgroundTransferCostPolicy) -> ::windows::runtime::HRESULT,
1868 );
1869 #[repr(transparent)]
1870 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1871 #[doc(hidden)]
1872 pub struct IBackgroundTransferCompletionGroup(::windows::runtime::IInspectable);
1873 unsafe impl ::windows::runtime::Interface for IBackgroundTransferCompletionGroup {
1874     type Vtable = IBackgroundTransferCompletionGroup_abi;
1875     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(764609061, 39019, 22349, [121, 80, 10, 221, 71, 245, 215, 6]);
1876 }
1877 #[repr(C)]
1878 #[doc(hidden)]
1879 pub struct IBackgroundTransferCompletionGroup_abi(
1880     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1881     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1882     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1883     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1884     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1885     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1886     #[cfg(feature = "ApplicationModel_Background")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1887     #[cfg(not(feature = "ApplicationModel_Background"))] usize,
1888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
1889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1890 );
1891 #[repr(transparent)]
1892 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1893 #[doc(hidden)]
1894 pub struct IBackgroundTransferCompletionGroupTriggerDetails(::windows::runtime::IInspectable);
1895 unsafe impl ::windows::runtime::Interface for IBackgroundTransferCompletionGroupTriggerDetails {
1896     type Vtable = IBackgroundTransferCompletionGroupTriggerDetails_abi;
1897     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2070667910, 28231, 20790, [127, 203, 250, 67, 137, 244, 111, 91]);
1898 }
1899 #[repr(C)]
1900 #[doc(hidden)]
1901 pub struct IBackgroundTransferCompletionGroupTriggerDetails_abi(
1902     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1903     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1904     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1905     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1906     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1907     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1908     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1909     #[cfg(not(feature = "Foundation_Collections"))] usize,
1910     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1911     #[cfg(not(feature = "Foundation_Collections"))] usize,
1912 );
1913 #[repr(transparent)]
1914 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1915 #[doc(hidden)]
1916 pub struct IBackgroundTransferContentPart(::windows::runtime::IInspectable);
1917 unsafe impl ::windows::runtime::Interface for IBackgroundTransferContentPart {
1918     type Vtable = IBackgroundTransferContentPart_abi;
1919     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3907081815, 55249, 20184, [131, 142, 103, 74, 194, 23, 172, 230]);
1920 }
1921 #[repr(C)]
1922 #[doc(hidden)]
1923 pub struct IBackgroundTransferContentPart_abi(
1924     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1925     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1926     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1927     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1928     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1929     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
1930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, headervalue: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
1932     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1933     #[cfg(not(feature = "Storage"))] usize,
1934 );
1935 #[repr(transparent)]
1936 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1937 pub struct IBackgroundTransferContentPartFactory(::windows::runtime::IInspectable);
1938 unsafe impl ::windows::runtime::Interface for IBackgroundTransferContentPartFactory {
1939     type Vtable = IBackgroundTransferContentPartFactory_abi;
1940     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2431621289, 31233, 18955, [159, 128, 160, 176, 187, 55, 15, 141]);
1941 }
1942 impl IBackgroundTransferContentPartFactory {
CreateWithName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, name: Param0) -> ::windows::runtime::Result<BackgroundTransferContentPart>1943     pub fn CreateWithName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, name: Param0) -> ::windows::runtime::Result<BackgroundTransferContentPart> {
1944         let this = self;
1945         unsafe {
1946             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1947             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), name.into_param().abi(), &mut result__).from_abi::<BackgroundTransferContentPart>(result__)
1948         }
1949     }
CreateWithNameAndFileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, name: Param0, filename: Param1) -> ::windows::runtime::Result<BackgroundTransferContentPart>1950     pub fn CreateWithNameAndFileName<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, name: Param0, filename: Param1) -> ::windows::runtime::Result<BackgroundTransferContentPart> {
1951         let this = self;
1952         unsafe {
1953             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
1954             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), name.into_param().abi(), filename.into_param().abi(), &mut result__).from_abi::<BackgroundTransferContentPart>(result__)
1955         }
1956     }
1957 }
1958 unsafe impl ::windows::runtime::RuntimeType for IBackgroundTransferContentPartFactory {
1959     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{90ef98a9-7a01-4a0b-9f80-a0b0bb370f8d}");
1960 }
1961 impl ::std::convert::From<IBackgroundTransferContentPartFactory> for ::windows::runtime::IUnknown {
from(value: IBackgroundTransferContentPartFactory) -> Self1962     fn from(value: IBackgroundTransferContentPartFactory) -> Self {
1963         unsafe { ::std::mem::transmute(value) }
1964     }
1965 }
1966 impl ::std::convert::From<&IBackgroundTransferContentPartFactory> for ::windows::runtime::IUnknown {
from(value: &IBackgroundTransferContentPartFactory) -> Self1967     fn from(value: &IBackgroundTransferContentPartFactory) -> Self {
1968         ::std::convert::From::from(::std::clone::Clone::clone(value))
1969     }
1970 }
1971 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IBackgroundTransferContentPartFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1972     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1973         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1974     }
1975 }
1976 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IBackgroundTransferContentPartFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>1977     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1978         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1979     }
1980 }
1981 impl ::std::convert::From<IBackgroundTransferContentPartFactory> for ::windows::runtime::IInspectable {
from(value: IBackgroundTransferContentPartFactory) -> Self1982     fn from(value: IBackgroundTransferContentPartFactory) -> Self {
1983         value.0
1984     }
1985 }
1986 impl ::std::convert::From<&IBackgroundTransferContentPartFactory> for ::windows::runtime::IInspectable {
from(value: &IBackgroundTransferContentPartFactory) -> Self1987     fn from(value: &IBackgroundTransferContentPartFactory) -> Self {
1988         value.0.clone()
1989     }
1990 }
1991 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IBackgroundTransferContentPartFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1992     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1993         ::windows::runtime::Param::Owned(self.0)
1994     }
1995 }
1996 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IBackgroundTransferContentPartFactory {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>1997     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
1998         ::windows::runtime::Param::Borrowed(&self.0)
1999     }
2000 }
2001 #[repr(C)]
2002 #[doc(hidden)]
2003 pub struct IBackgroundTransferContentPartFactory_abi(
2004     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2005     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2006     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2007     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2008     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2009     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2010     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2011     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, filename: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2012 );
2013 #[repr(transparent)]
2014 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2015 #[doc(hidden)]
2016 pub struct IBackgroundTransferErrorStaticMethods(::windows::runtime::IInspectable);
2017 unsafe impl ::windows::runtime::Interface for IBackgroundTransferErrorStaticMethods {
2018     type Vtable = IBackgroundTransferErrorStaticMethods_abi;
2019     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2865969924, 4498, 19444, [139, 104, 57, 197, 173, 210, 68, 226]);
2020 }
2021 #[repr(C)]
2022 #[doc(hidden)]
2023 pub struct IBackgroundTransferErrorStaticMethods_abi(
2024     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2025     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2026     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2027     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2028     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2029     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2030     #[cfg(feature = "Web")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresult: i32, result__: *mut super::super::Web::WebErrorStatus) -> ::windows::runtime::HRESULT,
2031     #[cfg(not(feature = "Web"))] usize,
2032 );
2033 #[repr(transparent)]
2034 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2035 #[doc(hidden)]
2036 pub struct IBackgroundTransferGroup(::windows::runtime::IInspectable);
2037 unsafe impl ::windows::runtime::Interface for IBackgroundTransferGroup {
2038     type Vtable = IBackgroundTransferGroup_abi;
2039     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3636716516, 25689, 17728, [133, 235, 170, 161, 200, 144, 54, 119]);
2040 }
2041 #[repr(C)]
2042 #[doc(hidden)]
2043 pub struct IBackgroundTransferGroup_abi(
2044     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2045     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2048     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2049     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2050     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2051     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundTransferBehavior) -> ::windows::runtime::HRESULT,
2052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: BackgroundTransferBehavior) -> ::windows::runtime::HRESULT,
2053 );
2054 #[repr(transparent)]
2055 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2056 #[doc(hidden)]
2057 pub struct IBackgroundTransferGroupStatics(::windows::runtime::IInspectable);
2058 unsafe impl ::windows::runtime::Interface for IBackgroundTransferGroupStatics {
2059     type Vtable = IBackgroundTransferGroupStatics_abi;
2060     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(49041586, 32024, 18779, [170, 34, 50, 169, 125, 69, 211, 226]);
2061 }
2062 #[repr(C)]
2063 #[doc(hidden)]
2064 pub struct IBackgroundTransferGroupStatics_abi(
2065     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2066     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2067     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2068     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2069     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2070     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2071     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, name: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2072 );
2073 #[repr(transparent)]
2074 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2075 pub struct IBackgroundTransferOperation(::windows::runtime::IInspectable);
2076 unsafe impl ::windows::runtime::Interface for IBackgroundTransferOperation {
2077     type Vtable = IBackgroundTransferOperation_abi;
2078     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3738200134, 37066, 17659, [143, 177, 18, 65, 84, 192, 213, 57]);
2079 }
2080 impl IBackgroundTransferOperation {
Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2081     pub fn Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2082         let this = self;
2083         unsafe {
2084             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
2085             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2086         }
2087     }
2088     #[cfg(feature = "Foundation")]
RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri>2089     pub fn RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri> {
2090         let this = self;
2091         unsafe {
2092             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2093             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Uri>(result__)
2094         }
2095     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2096     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2097         let this = self;
2098         unsafe {
2099             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2100             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2101         }
2102     }
2103     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2104     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2105         let this = self;
2106         unsafe {
2107             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2108             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2109         }
2110     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>2111     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
2112         let this = self;
2113         unsafe {
2114             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
2115             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
2116         }
2117     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>2118     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
2119         let this = self;
2120         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
2121     }
2122     #[cfg(feature = "Storage_Streams")]
GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream>2123     pub fn GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream> {
2124         let this = self;
2125         unsafe {
2126             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2127             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<super::super::Storage::Streams::IInputStream>(result__)
2128         }
2129     }
GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation>2130     pub fn GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation> {
2131         let this = self;
2132         unsafe {
2133             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2134             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ResponseInformation>(result__)
2135         }
2136     }
2137 }
2138 unsafe impl ::windows::runtime::RuntimeType for IBackgroundTransferOperation {
2139     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{ded06846-90ca-44fb-8fb1-124154c0d539}");
2140 }
2141 impl ::std::convert::From<IBackgroundTransferOperation> for ::windows::runtime::IUnknown {
from(value: IBackgroundTransferOperation) -> Self2142     fn from(value: IBackgroundTransferOperation) -> Self {
2143         unsafe { ::std::mem::transmute(value) }
2144     }
2145 }
2146 impl ::std::convert::From<&IBackgroundTransferOperation> for ::windows::runtime::IUnknown {
from(value: &IBackgroundTransferOperation) -> Self2147     fn from(value: &IBackgroundTransferOperation) -> Self {
2148         ::std::convert::From::from(::std::clone::Clone::clone(value))
2149     }
2150 }
2151 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IBackgroundTransferOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2152     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2153         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2154     }
2155 }
2156 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IBackgroundTransferOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2157     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2158         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2159     }
2160 }
2161 impl ::std::convert::From<IBackgroundTransferOperation> for ::windows::runtime::IInspectable {
from(value: IBackgroundTransferOperation) -> Self2162     fn from(value: IBackgroundTransferOperation) -> Self {
2163         value.0
2164     }
2165 }
2166 impl ::std::convert::From<&IBackgroundTransferOperation> for ::windows::runtime::IInspectable {
from(value: &IBackgroundTransferOperation) -> Self2167     fn from(value: &IBackgroundTransferOperation) -> Self {
2168         value.0.clone()
2169     }
2170 }
2171 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IBackgroundTransferOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2172     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2173         ::windows::runtime::Param::Owned(self.0)
2174     }
2175 }
2176 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IBackgroundTransferOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2177     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2178         ::windows::runtime::Param::Borrowed(&self.0)
2179     }
2180 }
2181 #[repr(C)]
2182 #[doc(hidden)]
2183 pub struct IBackgroundTransferOperation_abi(
2184     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2185     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2186     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2187     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2188     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2189     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2190     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2191     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2192     #[cfg(not(feature = "Foundation"))] usize,
2193     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2194     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2195     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundTransferCostPolicy) -> ::windows::runtime::HRESULT,
2196     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: BackgroundTransferCostPolicy) -> ::windows::runtime::HRESULT,
2197     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, position: u64, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2198     #[cfg(not(feature = "Storage_Streams"))] usize,
2199     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2200 );
2201 #[repr(transparent)]
2202 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2203 pub struct IBackgroundTransferOperationPriority(::windows::runtime::IInspectable);
2204 unsafe impl ::windows::runtime::Interface for IBackgroundTransferOperationPriority {
2205     type Vtable = IBackgroundTransferOperationPriority_abi;
2206     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(75842343, 21076, 19258, [145, 94, 10, 164, 146, 117, 192, 249]);
2207 }
2208 impl IBackgroundTransferOperationPriority {
Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority>2209     pub fn Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority> {
2210         let this = self;
2211         unsafe {
2212             let mut result__: BackgroundTransferPriority = ::std::mem::zeroed();
2213             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferPriority>(result__)
2214         }
2215     }
SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()>2216     pub fn SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()> {
2217         let this = self;
2218         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
2219     }
2220 }
2221 unsafe impl ::windows::runtime::RuntimeType for IBackgroundTransferOperationPriority {
2222     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"{04854327-5254-4b3a-915e-0aa49275c0f9}");
2223 }
2224 impl ::std::convert::From<IBackgroundTransferOperationPriority> for ::windows::runtime::IUnknown {
from(value: IBackgroundTransferOperationPriority) -> Self2225     fn from(value: IBackgroundTransferOperationPriority) -> Self {
2226         unsafe { ::std::mem::transmute(value) }
2227     }
2228 }
2229 impl ::std::convert::From<&IBackgroundTransferOperationPriority> for ::windows::runtime::IUnknown {
from(value: &IBackgroundTransferOperationPriority) -> Self2230     fn from(value: &IBackgroundTransferOperationPriority) -> Self {
2231         ::std::convert::From::from(::std::clone::Clone::clone(value))
2232     }
2233 }
2234 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IBackgroundTransferOperationPriority {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2235     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2236         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2237     }
2238 }
2239 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IBackgroundTransferOperationPriority {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2240     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2241         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2242     }
2243 }
2244 impl ::std::convert::From<IBackgroundTransferOperationPriority> for ::windows::runtime::IInspectable {
from(value: IBackgroundTransferOperationPriority) -> Self2245     fn from(value: IBackgroundTransferOperationPriority) -> Self {
2246         value.0
2247     }
2248 }
2249 impl ::std::convert::From<&IBackgroundTransferOperationPriority> for ::windows::runtime::IInspectable {
from(value: &IBackgroundTransferOperationPriority) -> Self2250     fn from(value: &IBackgroundTransferOperationPriority) -> Self {
2251         value.0.clone()
2252     }
2253 }
2254 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for IBackgroundTransferOperationPriority {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2255     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2256         ::windows::runtime::Param::Owned(self.0)
2257     }
2258 }
2259 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a IBackgroundTransferOperationPriority {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2260     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2261         ::windows::runtime::Param::Borrowed(&self.0)
2262     }
2263 }
2264 #[repr(C)]
2265 #[doc(hidden)]
2266 pub struct IBackgroundTransferOperationPriority_abi(
2267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2268     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2269     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2270     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2271     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2272     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2273     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundTransferPriority) -> ::windows::runtime::HRESULT,
2274     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: BackgroundTransferPriority) -> ::windows::runtime::HRESULT,
2275 );
2276 #[repr(transparent)]
2277 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2278 #[doc(hidden)]
2279 pub struct IBackgroundTransferRangesDownloadedEventArgs(::windows::runtime::IInspectable);
2280 unsafe impl ::windows::runtime::Interface for IBackgroundTransferRangesDownloadedEventArgs {
2281     type Vtable = IBackgroundTransferRangesDownloadedEventArgs_abi;
2282     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1052537939, 48968, 19080, [146, 72, 176, 193, 101, 24, 79, 92]);
2283 }
2284 #[repr(C)]
2285 #[doc(hidden)]
2286 pub struct IBackgroundTransferRangesDownloadedEventArgs_abi(
2287     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2288     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2289     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2290     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2291     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2292     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2293     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2294     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2295     #[cfg(not(feature = "Foundation_Collections"))] usize,
2296     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2297     #[cfg(not(feature = "Foundation"))] usize,
2298 );
2299 #[repr(transparent)]
2300 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2301 #[doc(hidden)]
2302 pub struct IBackgroundUploader(::windows::runtime::IInspectable);
2303 unsafe impl ::windows::runtime::Interface for IBackgroundUploader {
2304     type Vtable = IBackgroundUploader_abi;
2305     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3314928046, 52909, 18011, [136, 1, 197, 90, 201, 10, 1, 206]);
2306 }
2307 #[repr(C)]
2308 #[doc(hidden)]
2309 pub struct IBackgroundUploader_abi(
2310     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2311     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2312     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2313     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2314     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2315     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2316     #[cfg(all(feature = "Foundation", feature = "Storage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, sourcefile: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2317     #[cfg(not(all(feature = "Foundation", feature = "Storage")))] usize,
2318     #[cfg(all(feature = "Foundation", feature = "Storage_Streams"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, sourcestream: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2319     #[cfg(not(all(feature = "Foundation", feature = "Storage_Streams")))] usize,
2320     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, parts: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2321     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2322     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, parts: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2323     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2324     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uri: ::windows::runtime::RawPtr, parts: ::windows::runtime::RawPtr, subtype: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, boundary: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2325     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2326 );
2327 #[repr(transparent)]
2328 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2329 #[doc(hidden)]
2330 pub struct IBackgroundUploader2(::windows::runtime::IInspectable);
2331 unsafe impl ::windows::runtime::Interface for IBackgroundUploader2 {
2332     type Vtable = IBackgroundUploader2_abi;
2333     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2382762702, 3124, 17507, [128, 127, 25, 138, 27, 139, 212, 173]);
2334 }
2335 #[repr(C)]
2336 #[doc(hidden)]
2337 pub struct IBackgroundUploader2_abi(
2338     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2339     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2340     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2341     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2345     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2346     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2347     #[cfg(not(feature = "UI_Notifications"))] usize,
2348     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2349     #[cfg(not(feature = "UI_Notifications"))] usize,
2350     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2351     #[cfg(not(feature = "UI_Notifications"))] usize,
2352     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2353     #[cfg(not(feature = "UI_Notifications"))] usize,
2354     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2355     #[cfg(not(feature = "UI_Notifications"))] usize,
2356     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2357     #[cfg(not(feature = "UI_Notifications"))] usize,
2358     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2359     #[cfg(not(feature = "UI_Notifications"))] usize,
2360     #[cfg(feature = "UI_Notifications")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2361     #[cfg(not(feature = "UI_Notifications"))] usize,
2362 );
2363 #[repr(transparent)]
2364 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2365 #[doc(hidden)]
2366 pub struct IBackgroundUploader3(::windows::runtime::IInspectable);
2367 unsafe impl ::windows::runtime::Interface for IBackgroundUploader3 {
2368     type Vtable = IBackgroundUploader3_abi;
2369     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3109983289, 23536, 19258, [140, 71, 44, 97, 153, 168, 84, 185]);
2370 }
2371 #[repr(C)]
2372 #[doc(hidden)]
2373 pub struct IBackgroundUploader3_abi(
2374     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2375     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2381 );
2382 #[repr(transparent)]
2383 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2384 #[doc(hidden)]
2385 pub struct IBackgroundUploaderFactory(::windows::runtime::IInspectable);
2386 unsafe impl ::windows::runtime::Interface for IBackgroundUploaderFactory {
2387     type Vtable = IBackgroundUploaderFactory_abi;
2388     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1935803335, 4327, 18592, [172, 60, 26, 199, 16, 149, 236, 87]);
2389 }
2390 #[repr(C)]
2391 #[doc(hidden)]
2392 pub struct IBackgroundUploaderFactory_abi(
2393     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2394     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2395     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2396     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2397     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2398     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2399     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, completiongroup: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2400 );
2401 #[repr(transparent)]
2402 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2403 #[doc(hidden)]
2404 pub struct IBackgroundUploaderStaticMethods(::windows::runtime::IInspectable);
2405 unsafe impl ::windows::runtime::Interface for IBackgroundUploaderStaticMethods {
2406     type Vtable = IBackgroundUploaderStaticMethods_abi;
2407     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4068957435, 39685, 18241, [145, 33, 116, 10, 131, 226, 71, 223]);
2408 }
2409 #[repr(C)]
2410 #[doc(hidden)]
2411 pub struct IBackgroundUploaderStaticMethods_abi(
2412     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2413     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2414     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2415     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2416     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2417     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2418     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2419     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2420     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, group: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2421     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2422 );
2423 #[repr(transparent)]
2424 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2425 #[doc(hidden)]
2426 pub struct IBackgroundUploaderStaticMethods2(::windows::runtime::IInspectable);
2427 unsafe impl ::windows::runtime::Interface for IBackgroundUploaderStaticMethods2 {
2428     type Vtable = IBackgroundUploaderStaticMethods2_abi;
2429     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3910773858, 59912, 17136, [162, 172, 7, 228, 103, 84, 144, 128]);
2430 }
2431 #[repr(C)]
2432 #[doc(hidden)]
2433 pub struct IBackgroundUploaderStaticMethods2_abi(
2434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2440     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, group: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2441     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2442 );
2443 #[repr(transparent)]
2444 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2445 #[doc(hidden)]
2446 pub struct IBackgroundUploaderUserConsent(::windows::runtime::IInspectable);
2447 unsafe impl ::windows::runtime::Interface for IBackgroundUploaderUserConsent {
2448     type Vtable = IBackgroundUploaderUserConsent_abi;
2449     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1001620683, 1888, 17949, [144, 127, 81, 56, 248, 77, 68, 193]);
2450 }
2451 #[repr(C)]
2452 #[doc(hidden)]
2453 pub struct IBackgroundUploaderUserConsent_abi(
2454     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2455     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2456     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2460     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, operations: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2461     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2462 );
2463 #[repr(transparent)]
2464 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2465 #[doc(hidden)]
2466 pub struct IContentPrefetcher(::windows::runtime::IInspectable);
2467 unsafe impl ::windows::runtime::Interface for IContentPrefetcher {
2468     type Vtable = IContentPrefetcher_abi;
2469     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2832660308, 32193, 19673, [136, 16, 42, 106, 169, 65, 126, 17]);
2470 }
2471 #[repr(C)]
2472 #[doc(hidden)]
2473 pub struct IContentPrefetcher_abi(
2474     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2475     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2480     #[cfg(all(feature = "Foundation", feature = "Foundation_Collections"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2481     #[cfg(not(all(feature = "Foundation", feature = "Foundation_Collections")))] usize,
2482     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2483     #[cfg(not(feature = "Foundation"))] usize,
2484     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2485     #[cfg(not(feature = "Foundation"))] usize,
2486 );
2487 #[repr(transparent)]
2488 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2489 #[doc(hidden)]
2490 pub struct IContentPrefetcherTime(::windows::runtime::IInspectable);
2491 unsafe impl ::windows::runtime::Interface for IContentPrefetcherTime {
2492     type Vtable = IContentPrefetcherTime_abi;
2493     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3814849800, 4906, 20446, [167, 204, 252, 176, 230, 101, 35, 175]);
2494 }
2495 #[repr(C)]
2496 #[doc(hidden)]
2497 pub struct IContentPrefetcherTime_abi(
2498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2500     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2501     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2502     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2503     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2504     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2505     #[cfg(not(feature = "Foundation"))] usize,
2506 );
2507 #[repr(transparent)]
2508 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2509 #[doc(hidden)]
2510 pub struct IDownloadOperation(::windows::runtime::IInspectable);
2511 unsafe impl ::windows::runtime::Interface for IDownloadOperation {
2512     type Vtable = IDownloadOperation_abi;
2513     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3179801520, 22292, 19977, [186, 104, 190, 247, 57, 3, 176, 215]);
2514 }
2515 #[repr(C)]
2516 #[doc(hidden)]
2517 pub struct IDownloadOperation_abi(
2518     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2519     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2520     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2521     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2522     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2523     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2524     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2525     #[cfg(not(feature = "Storage"))] usize,
2526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundDownloadProgress) -> ::windows::runtime::HRESULT,
2527     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2528     #[cfg(not(feature = "Foundation"))] usize,
2529     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2530     #[cfg(not(feature = "Foundation"))] usize,
2531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2532     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2533 );
2534 #[repr(transparent)]
2535 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2536 #[doc(hidden)]
2537 pub struct IDownloadOperation2(::windows::runtime::IInspectable);
2538 unsafe impl ::windows::runtime::Interface for IDownloadOperation2 {
2539     type Vtable = IDownloadOperation2_abi;
2540     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2748116288, 36764, 17235, [156, 212, 41, 13, 238, 56, 124, 56]);
2541 }
2542 #[repr(C)]
2543 #[doc(hidden)]
2544 pub struct IDownloadOperation2_abi(
2545     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2546     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2547     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2548     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2549     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2550     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2551     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2552 );
2553 #[repr(transparent)]
2554 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2555 #[doc(hidden)]
2556 pub struct IDownloadOperation3(::windows::runtime::IInspectable);
2557 unsafe impl ::windows::runtime::Interface for IDownloadOperation3 {
2558     type Vtable = IDownloadOperation3_abi;
2559     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1344746780, 32094, 19164, [184, 211, 223, 92, 96, 49, 185, 204]);
2560 }
2561 #[repr(C)]
2562 #[doc(hidden)]
2563 pub struct IDownloadOperation3_abi(
2564     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2565     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2566     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2567     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2568     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2569     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2570     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2571     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: bool) -> ::windows::runtime::HRESULT,
2572     #[cfg(feature = "Storage_Streams")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2573     #[cfg(not(feature = "Storage_Streams"))] usize,
2574     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2575     #[cfg(not(feature = "Foundation_Collections"))] usize,
2576     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, eventhandler: ::windows::runtime::RawPtr, result__: *mut super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
2577     #[cfg(not(feature = "Foundation"))] usize,
2578     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, eventcookie: super::super::Foundation::EventRegistrationToken) -> ::windows::runtime::HRESULT,
2579     #[cfg(not(feature = "Foundation"))] usize,
2580     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2581     #[cfg(not(feature = "Foundation"))] usize,
2582     #[cfg(all(feature = "Foundation_Collections", feature = "Web"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2583     #[cfg(not(all(feature = "Foundation_Collections", feature = "Web")))] usize,
2584     #[cfg(all(feature = "Foundation", feature = "Web"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2585     #[cfg(not(all(feature = "Foundation", feature = "Web")))] usize,
2586 );
2587 #[repr(transparent)]
2588 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2589 #[doc(hidden)]
2590 pub struct IDownloadOperation4(::windows::runtime::IInspectable);
2591 unsafe impl ::windows::runtime::Interface for IDownloadOperation4 {
2592     type Vtable = IDownloadOperation4_abi;
2593     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(215658228, 36079, 16458, [150, 109, 240, 88, 64, 11, 237, 128]);
2594 }
2595 #[repr(C)]
2596 #[doc(hidden)]
2597 pub struct IDownloadOperation4_abi(
2598     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2599     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2600     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2601     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2602     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2603     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2604     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2605 );
2606 #[repr(transparent)]
2607 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2608 #[doc(hidden)]
2609 pub struct IDownloadOperation5(::windows::runtime::IInspectable);
2610 unsafe impl ::windows::runtime::Interface for IDownloadOperation5 {
2611     type Vtable = IDownloadOperation5_abi;
2612     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2795087983, 21904, 17978, [184, 214, 30, 73, 26, 39, 96, 165]);
2613 }
2614 #[repr(C)]
2615 #[doc(hidden)]
2616 pub struct IDownloadOperation5_abi(
2617     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2618     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2619     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2620     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2621     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2622     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2623     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, headervalue: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2624     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2625 );
2626 #[repr(transparent)]
2627 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2628 #[doc(hidden)]
2629 pub struct IResponseInformation(::windows::runtime::IInspectable);
2630 unsafe impl ::windows::runtime::Interface for IResponseInformation {
2631     type Vtable = IResponseInformation_abi;
2632     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4173044242, 63251, 18322, [139, 104, 217, 210, 151, 249, 29, 46]);
2633 }
2634 #[repr(C)]
2635 #[doc(hidden)]
2636 pub struct IResponseInformation_abi(
2637     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2638     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2640     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2641     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2642     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2643     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2644     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2645     #[cfg(not(feature = "Foundation"))] usize,
2646     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut u32) -> ::windows::runtime::HRESULT,
2647     #[cfg(feature = "Foundation_Collections")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2648     #[cfg(not(feature = "Foundation_Collections"))] usize,
2649 );
2650 #[repr(transparent)]
2651 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2652 #[doc(hidden)]
2653 pub struct IUnconstrainedTransferRequestResult(::windows::runtime::IInspectable);
2654 unsafe impl ::windows::runtime::Interface for IUnconstrainedTransferRequestResult {
2655     type Vtable = IUnconstrainedTransferRequestResult_abi;
2656     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1277474847, 55620, 16658, [169, 142, 106, 105, 82, 43, 126, 187]);
2657 }
2658 #[repr(C)]
2659 #[doc(hidden)]
2660 pub struct IUnconstrainedTransferRequestResult_abi(
2661     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2662     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2666     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2667     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut bool) -> ::windows::runtime::HRESULT,
2668 );
2669 #[repr(transparent)]
2670 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2671 #[doc(hidden)]
2672 pub struct IUploadOperation(::windows::runtime::IInspectable);
2673 unsafe impl ::windows::runtime::Interface for IUploadOperation {
2674     type Vtable = IUploadOperation_abi;
2675     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1045832928, 29577, 17228, [139, 53, 66, 127, 211, 107, 189, 174]);
2676 }
2677 #[repr(C)]
2678 #[doc(hidden)]
2679 pub struct IUploadOperation_abi(
2680     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2681     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2682     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2683     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2684     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2685     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2686     #[cfg(feature = "Storage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2687     #[cfg(not(feature = "Storage"))] usize,
2688     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut BackgroundUploadProgress) -> ::windows::runtime::HRESULT,
2689     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2690     #[cfg(not(feature = "Foundation"))] usize,
2691     #[cfg(feature = "Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2692     #[cfg(not(feature = "Foundation"))] usize,
2693 );
2694 #[repr(transparent)]
2695 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2696 #[doc(hidden)]
2697 pub struct IUploadOperation2(::windows::runtime::IInspectable);
2698 unsafe impl ::windows::runtime::Interface for IUploadOperation2 {
2699     type Vtable = IUploadOperation2_abi;
2700     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1432455666, 10100, 19958, [159, 165, 32, 159, 43, 251, 18, 247]);
2701 }
2702 #[repr(C)]
2703 #[doc(hidden)]
2704 pub struct IUploadOperation2_abi(
2705     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2706     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2707     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2708     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2709     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2710     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2711     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, result__: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2712 );
2713 #[repr(transparent)]
2714 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2715 #[doc(hidden)]
2716 pub struct IUploadOperation3(::windows::runtime::IInspectable);
2717 unsafe impl ::windows::runtime::Interface for IUploadOperation3 {
2718     type Vtable = IUploadOperation3_abi;
2719     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1120480419, 56889, 17734, [188, 98, 55, 116, 180, 41, 77, 227]);
2720 }
2721 #[repr(C)]
2722 #[doc(hidden)]
2723 pub struct IUploadOperation3_abi(
2724     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2725     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2726     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2727     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2728     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2729     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2730     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2731 );
2732 #[repr(transparent)]
2733 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2734 #[doc(hidden)]
2735 pub struct IUploadOperation4(::windows::runtime::IInspectable);
2736 unsafe impl ::windows::runtime::Interface for IUploadOperation4 {
2737     type Vtable = IUploadOperation4_abi;
2738     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1357770545, 64197, 16878, [176, 48, 220, 119, 202, 238, 159, 170]);
2739 }
2740 #[repr(C)]
2741 #[doc(hidden)]
2742 pub struct IUploadOperation4_abi(
2743     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2744     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2745     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2746     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, count: *mut u32, values: *mut *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2747     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2748     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, value: *mut i32) -> ::windows::runtime::HRESULT,
2749     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>, headervalue: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2750     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, headername: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING>) -> ::windows::runtime::HRESULT,
2751 );
2752 #[repr(transparent)]
2753 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2754 pub struct ResponseInformation(::windows::runtime::IInspectable);
2755 impl ResponseInformation {
IsResumable(&self) -> ::windows::runtime::Result<bool>2756     pub fn IsResumable(&self) -> ::windows::runtime::Result<bool> {
2757         let this = self;
2758         unsafe {
2759             let mut result__: bool = ::std::mem::zeroed();
2760             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2761         }
2762     }
2763     #[cfg(feature = "Foundation")]
ActualUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri>2764     pub fn ActualUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri> {
2765         let this = self;
2766         unsafe {
2767             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2768             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Uri>(result__)
2769         }
2770     }
StatusCode(&self) -> ::windows::runtime::Result<u32>2771     pub fn StatusCode(&self) -> ::windows::runtime::Result<u32> {
2772         let this = self;
2773         unsafe {
2774             let mut result__: u32 = ::std::mem::zeroed();
2775             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<u32>(result__)
2776         }
2777     }
2778     #[cfg(feature = "Foundation_Collections")]
Headers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::HSTRING>>2779     pub fn Headers(&self) -> ::windows::runtime::Result<super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::HSTRING>> {
2780         let this = self;
2781         unsafe {
2782             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2783             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Collections::IMapView<::windows::runtime::HSTRING, ::windows::runtime::HSTRING>>(result__)
2784         }
2785     }
2786 }
2787 unsafe impl ::windows::runtime::RuntimeType for ResponseInformation {
2788     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.ResponseInformation;{f8bb9a12-f713-4792-8b68-d9d297f91d2e})");
2789 }
2790 unsafe impl ::windows::runtime::Interface for ResponseInformation {
2791     type Vtable = IResponseInformation_abi;
2792     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4173044242, 63251, 18322, [139, 104, 217, 210, 151, 249, 29, 46]);
2793 }
2794 impl ::windows::runtime::RuntimeName for ResponseInformation {
2795     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.ResponseInformation";
2796 }
2797 impl ::std::convert::From<ResponseInformation> for ::windows::runtime::IUnknown {
from(value: ResponseInformation) -> Self2798     fn from(value: ResponseInformation) -> Self {
2799         unsafe { ::std::mem::transmute(value) }
2800     }
2801 }
2802 impl ::std::convert::From<&ResponseInformation> for ::windows::runtime::IUnknown {
from(value: &ResponseInformation) -> Self2803     fn from(value: &ResponseInformation) -> Self {
2804         ::std::convert::From::from(::std::clone::Clone::clone(value))
2805     }
2806 }
2807 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for ResponseInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2808     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2809         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2810     }
2811 }
2812 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &ResponseInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2813     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2814         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2815     }
2816 }
2817 impl ::std::convert::From<ResponseInformation> for ::windows::runtime::IInspectable {
from(value: ResponseInformation) -> Self2818     fn from(value: ResponseInformation) -> Self {
2819         value.0
2820     }
2821 }
2822 impl ::std::convert::From<&ResponseInformation> for ::windows::runtime::IInspectable {
from(value: &ResponseInformation) -> Self2823     fn from(value: &ResponseInformation) -> Self {
2824         value.0.clone()
2825     }
2826 }
2827 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for ResponseInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2828     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2829         ::windows::runtime::Param::Owned(self.0)
2830     }
2831 }
2832 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a ResponseInformation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2833     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2834         ::windows::runtime::Param::Borrowed(&self.0)
2835     }
2836 }
2837 unsafe impl ::std::marker::Send for ResponseInformation {}
2838 unsafe impl ::std::marker::Sync for ResponseInformation {}
2839 #[repr(transparent)]
2840 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2841 pub struct UnconstrainedTransferRequestResult(::windows::runtime::IInspectable);
2842 impl UnconstrainedTransferRequestResult {
2843     #[cfg(feature = "deprecated")]
IsUnconstrained(&self) -> ::windows::runtime::Result<bool>2844     pub fn IsUnconstrained(&self) -> ::windows::runtime::Result<bool> {
2845         let this = self;
2846         unsafe {
2847             let mut result__: bool = ::std::mem::zeroed();
2848             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<bool>(result__)
2849         }
2850     }
2851 }
2852 unsafe impl ::windows::runtime::RuntimeType for UnconstrainedTransferRequestResult {
2853     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.UnconstrainedTransferRequestResult;{4c24b81f-d944-4112-a98e-6a69522b7ebb})");
2854 }
2855 unsafe impl ::windows::runtime::Interface for UnconstrainedTransferRequestResult {
2856     type Vtable = IUnconstrainedTransferRequestResult_abi;
2857     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1277474847, 55620, 16658, [169, 142, 106, 105, 82, 43, 126, 187]);
2858 }
2859 impl ::windows::runtime::RuntimeName for UnconstrainedTransferRequestResult {
2860     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.UnconstrainedTransferRequestResult";
2861 }
2862 impl ::std::convert::From<UnconstrainedTransferRequestResult> for ::windows::runtime::IUnknown {
from(value: UnconstrainedTransferRequestResult) -> Self2863     fn from(value: UnconstrainedTransferRequestResult) -> Self {
2864         unsafe { ::std::mem::transmute(value) }
2865     }
2866 }
2867 impl ::std::convert::From<&UnconstrainedTransferRequestResult> for ::windows::runtime::IUnknown {
from(value: &UnconstrainedTransferRequestResult) -> Self2868     fn from(value: &UnconstrainedTransferRequestResult) -> Self {
2869         ::std::convert::From::from(::std::clone::Clone::clone(value))
2870     }
2871 }
2872 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UnconstrainedTransferRequestResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2873     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2874         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2875     }
2876 }
2877 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UnconstrainedTransferRequestResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>2878     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2879         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2880     }
2881 }
2882 impl ::std::convert::From<UnconstrainedTransferRequestResult> for ::windows::runtime::IInspectable {
from(value: UnconstrainedTransferRequestResult) -> Self2883     fn from(value: UnconstrainedTransferRequestResult) -> Self {
2884         value.0
2885     }
2886 }
2887 impl ::std::convert::From<&UnconstrainedTransferRequestResult> for ::windows::runtime::IInspectable {
from(value: &UnconstrainedTransferRequestResult) -> Self2888     fn from(value: &UnconstrainedTransferRequestResult) -> Self {
2889         value.0.clone()
2890     }
2891 }
2892 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UnconstrainedTransferRequestResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2893     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2894         ::windows::runtime::Param::Owned(self.0)
2895     }
2896 }
2897 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UnconstrainedTransferRequestResult {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>2898     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
2899         ::windows::runtime::Param::Borrowed(&self.0)
2900     }
2901 }
2902 unsafe impl ::std::marker::Send for UnconstrainedTransferRequestResult {}
2903 unsafe impl ::std::marker::Sync for UnconstrainedTransferRequestResult {}
2904 #[repr(transparent)]
2905 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2906 pub struct UploadOperation(::windows::runtime::IInspectable);
2907 impl UploadOperation {
2908     #[cfg(feature = "Storage")]
SourceFile(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile>2909     pub fn SourceFile(&self) -> ::windows::runtime::Result<super::super::Storage::IStorageFile> {
2910         let this = self;
2911         unsafe {
2912             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2913             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Storage::IStorageFile>(result__)
2914         }
2915     }
Progress(&self) -> ::windows::runtime::Result<BackgroundUploadProgress>2916     pub fn Progress(&self) -> ::windows::runtime::Result<BackgroundUploadProgress> {
2917         let this = self;
2918         unsafe {
2919             let mut result__: BackgroundUploadProgress = ::std::mem::zeroed();
2920             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundUploadProgress>(result__)
2921         }
2922     }
2923     #[cfg(feature = "Foundation")]
StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>>2924     pub fn StartAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>> {
2925         let this = self;
2926         unsafe {
2927             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2928             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>>(result__)
2929         }
2930     }
2931     #[cfg(feature = "Foundation")]
AttachAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>>2932     pub fn AttachAsync(&self) -> ::windows::runtime::Result<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>> {
2933         let this = self;
2934         unsafe {
2935             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2936             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::IAsyncOperationWithProgress<UploadOperation, UploadOperation>>(result__)
2937         }
2938     }
Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID>2939     pub fn Guid(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
2940         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2941         unsafe {
2942             let mut result__: ::windows::runtime::GUID = ::std::mem::zeroed();
2943             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
2944         }
2945     }
2946     #[cfg(feature = "Foundation")]
RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri>2947     pub fn RequestedUri(&self) -> ::windows::runtime::Result<super::super::Foundation::Uri> {
2948         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2949         unsafe {
2950             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2951             (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), &mut result__).from_abi::<super::super::Foundation::Uri>(result__)
2952         }
2953     }
Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2954     pub fn Method(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2955         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2956         unsafe {
2957             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2958             (::windows::runtime::Interface::vtable(this).8)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2959         }
2960     }
2961     #[cfg(feature = "deprecated")]
Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING>2962     pub fn Group(&self) -> ::windows::runtime::Result<::windows::runtime::HSTRING> {
2963         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2964         unsafe {
2965             let mut result__: ::std::mem::ManuallyDrop<::windows::runtime::HSTRING> = ::std::mem::zeroed();
2966             (::windows::runtime::Interface::vtable(this).9)(::std::mem::transmute_copy(this), &mut result__).from_abi::<::windows::runtime::HSTRING>(result__)
2967         }
2968     }
CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy>2969     pub fn CostPolicy(&self) -> ::windows::runtime::Result<BackgroundTransferCostPolicy> {
2970         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2971         unsafe {
2972             let mut result__: BackgroundTransferCostPolicy = ::std::mem::zeroed();
2973             (::windows::runtime::Interface::vtable(this).10)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferCostPolicy>(result__)
2974         }
2975     }
SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()>2976     pub fn SetCostPolicy(&self, value: BackgroundTransferCostPolicy) -> ::windows::runtime::Result<()> {
2977         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2978         unsafe { (::windows::runtime::Interface::vtable(this).11)(::std::mem::transmute_copy(this), value).ok() }
2979     }
2980     #[cfg(feature = "Storage_Streams")]
GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream>2981     pub fn GetResultStreamAt(&self, position: u64) -> ::windows::runtime::Result<super::super::Storage::Streams::IInputStream> {
2982         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2983         unsafe {
2984             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2985             (::windows::runtime::Interface::vtable(this).12)(::std::mem::transmute_copy(this), position, &mut result__).from_abi::<super::super::Storage::Streams::IInputStream>(result__)
2986         }
2987     }
GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation>2988     pub fn GetResponseInformation(&self) -> ::windows::runtime::Result<ResponseInformation> {
2989         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperation>(self)?;
2990         unsafe {
2991             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
2992             (::windows::runtime::Interface::vtable(this).13)(::std::mem::transmute_copy(this), &mut result__).from_abi::<ResponseInformation>(result__)
2993         }
2994     }
Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority>2995     pub fn Priority(&self) -> ::windows::runtime::Result<BackgroundTransferPriority> {
2996         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperationPriority>(self)?;
2997         unsafe {
2998             let mut result__: BackgroundTransferPriority = ::std::mem::zeroed();
2999             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferPriority>(result__)
3000         }
3001     }
SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()>3002     pub fn SetPriority(&self, value: BackgroundTransferPriority) -> ::windows::runtime::Result<()> {
3003         let this = &::windows::runtime::Interface::cast::<IBackgroundTransferOperationPriority>(self)?;
3004         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), value).ok() }
3005     }
TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup>3006     pub fn TransferGroup(&self) -> ::windows::runtime::Result<BackgroundTransferGroup> {
3007         let this = &::windows::runtime::Interface::cast::<IUploadOperation2>(self)?;
3008         unsafe {
3009             let mut result__: ::windows::runtime::RawPtr = ::std::mem::zeroed();
3010             (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), &mut result__).from_abi::<BackgroundTransferGroup>(result__)
3011         }
3012     }
MakeCurrentInTransferGroup(&self) -> ::windows::runtime::Result<()>3013     pub fn MakeCurrentInTransferGroup(&self) -> ::windows::runtime::Result<()> {
3014         let this = &::windows::runtime::Interface::cast::<IUploadOperation3>(self)?;
3015         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this)).ok() }
3016     }
SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()>3017     pub fn SetRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>, Param1: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0, headervalue: Param1) -> ::windows::runtime::Result<()> {
3018         let this = &::windows::runtime::Interface::cast::<IUploadOperation4>(self)?;
3019         unsafe { (::windows::runtime::Interface::vtable(this).6)(::std::mem::transmute_copy(this), headername.into_param().abi(), headervalue.into_param().abi()).ok() }
3020     }
RemoveRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0) -> ::windows::runtime::Result<()>3021     pub fn RemoveRequestHeader<'a, Param0: ::windows::runtime::IntoParam<'a, ::windows::runtime::HSTRING>>(&self, headername: Param0) -> ::windows::runtime::Result<()> {
3022         let this = &::windows::runtime::Interface::cast::<IUploadOperation4>(self)?;
3023         unsafe { (::windows::runtime::Interface::vtable(this).7)(::std::mem::transmute_copy(this), headername.into_param().abi()).ok() }
3024     }
3025 }
3026 unsafe impl ::windows::runtime::RuntimeType for UploadOperation {
3027     const SIGNATURE: ::windows::runtime::ConstBuffer = ::windows::runtime::ConstBuffer::from_slice(b"rc(Windows.Networking.BackgroundTransfer.UploadOperation;{3e5624e0-7389-434c-8b35-427fd36bbdae})");
3028 }
3029 unsafe impl ::windows::runtime::Interface for UploadOperation {
3030     type Vtable = IUploadOperation_abi;
3031     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1045832928, 29577, 17228, [139, 53, 66, 127, 211, 107, 189, 174]);
3032 }
3033 impl ::windows::runtime::RuntimeName for UploadOperation {
3034     const NAME: &'static str = "Windows.Networking.BackgroundTransfer.UploadOperation";
3035 }
3036 impl ::std::convert::From<UploadOperation> for ::windows::runtime::IUnknown {
from(value: UploadOperation) -> Self3037     fn from(value: UploadOperation) -> Self {
3038         unsafe { ::std::mem::transmute(value) }
3039     }
3040 }
3041 impl ::std::convert::From<&UploadOperation> for ::windows::runtime::IUnknown {
from(value: &UploadOperation) -> Self3042     fn from(value: &UploadOperation) -> Self {
3043         ::std::convert::From::from(::std::clone::Clone::clone(value))
3044     }
3045 }
3046 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3047     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3048         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
3049     }
3050 }
3051 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown>3052     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
3053         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
3054     }
3055 }
3056 impl ::std::convert::From<UploadOperation> for ::windows::runtime::IInspectable {
from(value: UploadOperation) -> Self3057     fn from(value: UploadOperation) -> Self {
3058         value.0
3059     }
3060 }
3061 impl ::std::convert::From<&UploadOperation> for ::windows::runtime::IInspectable {
from(value: &UploadOperation) -> Self3062     fn from(value: &UploadOperation) -> Self {
3063         value.0.clone()
3064     }
3065 }
3066 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3067     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3068         ::windows::runtime::Param::Owned(self.0)
3069     }
3070 }
3071 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IInspectable> for &'a UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable>3072     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IInspectable> {
3073         ::windows::runtime::Param::Borrowed(&self.0)
3074     }
3075 }
3076 impl ::std::convert::TryFrom<UploadOperation> for IBackgroundTransferOperation {
3077     type Error = ::windows::runtime::Error;
try_from(value: UploadOperation) -> ::windows::runtime::Result<Self>3078     fn try_from(value: UploadOperation) -> ::windows::runtime::Result<Self> {
3079         ::std::convert::TryFrom::try_from(&value)
3080     }
3081 }
3082 impl ::std::convert::TryFrom<&UploadOperation> for IBackgroundTransferOperation {
3083     type Error = ::windows::runtime::Error;
try_from(value: &UploadOperation) -> ::windows::runtime::Result<Self>3084     fn try_from(value: &UploadOperation) -> ::windows::runtime::Result<Self> {
3085         ::windows::runtime::Interface::cast(value)
3086     }
3087 }
3088 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperation> for UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation>3089     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation> {
3090         ::windows::runtime::IntoParam::into_param(&self)
3091     }
3092 }
3093 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperation> for &UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation>3094     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperation> {
3095         ::std::convert::TryInto::<IBackgroundTransferOperation>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3096     }
3097 }
3098 impl ::std::convert::TryFrom<UploadOperation> for IBackgroundTransferOperationPriority {
3099     type Error = ::windows::runtime::Error;
try_from(value: UploadOperation) -> ::windows::runtime::Result<Self>3100     fn try_from(value: UploadOperation) -> ::windows::runtime::Result<Self> {
3101         ::std::convert::TryFrom::try_from(&value)
3102     }
3103 }
3104 impl ::std::convert::TryFrom<&UploadOperation> for IBackgroundTransferOperationPriority {
3105     type Error = ::windows::runtime::Error;
try_from(value: &UploadOperation) -> ::windows::runtime::Result<Self>3106     fn try_from(value: &UploadOperation) -> ::windows::runtime::Result<Self> {
3107         ::windows::runtime::Interface::cast(value)
3108     }
3109 }
3110 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperationPriority> for UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority>3111     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority> {
3112         ::windows::runtime::IntoParam::into_param(&self)
3113     }
3114 }
3115 impl<'a> ::windows::runtime::IntoParam<'a, IBackgroundTransferOperationPriority> for &UploadOperation {
into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority>3116     fn into_param(self) -> ::windows::runtime::Param<'a, IBackgroundTransferOperationPriority> {
3117         ::std::convert::TryInto::<IBackgroundTransferOperationPriority>::try_into(self).map(::windows::runtime::Param::Owned).unwrap_or(::windows::runtime::Param::None)
3118     }
3119 }
3120 unsafe impl ::std::marker::Send for UploadOperation {}
3121 unsafe impl ::std::marker::Sync for UploadOperation {}
3122