]> git.proxmox.com Git - rustc.git/blob - vendor/windows/src/Windows/Win32/Networking/BackgroundIntelligentTransferService/impl.rs
2ef2e6cc20621cd651d7dfda87db961a25165713
[rustc.git] / vendor / windows / src / Windows / Win32 / Networking / BackgroundIntelligentTransferService / impl.rs
1 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2 pub trait AsyncIBackgroundCopyCallback_Impl: Sized {
3 fn Begin_JobTransferred(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>) -> ::windows::core::Result<()>;
4 fn Finish_JobTransferred(&self) -> ::windows::core::Result<()>;
5 fn Begin_JobError(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>, perror: ::core::option::Option<&IBackgroundCopyError>) -> ::windows::core::Result<()>;
6 fn Finish_JobError(&self) -> ::windows::core::Result<()>;
7 fn Begin_JobModification(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>, dwreserved: u32) -> ::windows::core::Result<()>;
8 fn Finish_JobModification(&self) -> ::windows::core::Result<()>;
9 }
10 impl ::windows::core::RuntimeName for AsyncIBackgroundCopyCallback {}
11 impl AsyncIBackgroundCopyCallback_Vtbl {
12 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>() -> AsyncIBackgroundCopyCallback_Vtbl {
13 unsafe extern "system" fn Begin_JobTransferred<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
14 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
15 let this = (*this).get_impl();
16 this.Begin_JobTransferred(::windows::core::from_raw_borrowed(&pjob)).into()
17 }
18 unsafe extern "system" fn Finish_JobTransferred<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
19 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
20 let this = (*this).get_impl();
21 this.Finish_JobTransferred().into()
22 }
23 unsafe extern "system" fn Begin_JobError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, perror: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
24 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
25 let this = (*this).get_impl();
26 this.Begin_JobError(::windows::core::from_raw_borrowed(&pjob), ::windows::core::from_raw_borrowed(&perror)).into()
27 }
28 unsafe extern "system" fn Finish_JobError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
29 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
30 let this = (*this).get_impl();
31 this.Finish_JobError().into()
32 }
33 unsafe extern "system" fn Begin_JobModification<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, dwreserved: u32) -> ::windows::core::HRESULT {
34 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
35 let this = (*this).get_impl();
36 this.Begin_JobModification(::windows::core::from_raw_borrowed(&pjob), ::core::mem::transmute_copy(&dwreserved)).into()
37 }
38 unsafe extern "system" fn Finish_JobModification<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: AsyncIBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
39 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
40 let this = (*this).get_impl();
41 this.Finish_JobModification().into()
42 }
43 Self {
44 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
45 Begin_JobTransferred: Begin_JobTransferred::<Identity, Impl, OFFSET>,
46 Finish_JobTransferred: Finish_JobTransferred::<Identity, Impl, OFFSET>,
47 Begin_JobError: Begin_JobError::<Identity, Impl, OFFSET>,
48 Finish_JobError: Finish_JobError::<Identity, Impl, OFFSET>,
49 Begin_JobModification: Begin_JobModification::<Identity, Impl, OFFSET>,
50 Finish_JobModification: Finish_JobModification::<Identity, Impl, OFFSET>,
51 }
52 }
53 pub fn matches(iid: &windows::core::GUID) -> bool {
54 iid == &<AsyncIBackgroundCopyCallback as ::windows::core::ComInterface>::IID
55 }
56 }
57 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
58 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
59 pub trait IBITSExtensionSetup_Impl: Sized + super::super::System::Com::IDispatch_Impl {
60 fn EnableBITSUploads(&self) -> ::windows::core::Result<()>;
61 fn DisableBITSUploads(&self) -> ::windows::core::Result<()>;
62 fn GetCleanupTaskName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
63 fn GetCleanupTask(&self, riid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>;
64 }
65 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
66 impl ::windows::core::RuntimeName for IBITSExtensionSetup {}
67 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
68 impl IBITSExtensionSetup_Vtbl {
69 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetup_Impl, const OFFSET: isize>() -> IBITSExtensionSetup_Vtbl {
70 unsafe extern "system" fn EnableBITSUploads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
71 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
72 let this = (*this).get_impl();
73 this.EnableBITSUploads().into()
74 }
75 unsafe extern "system" fn DisableBITSUploads<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
76 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
77 let this = (*this).get_impl();
78 this.DisableBITSUploads().into()
79 }
80 unsafe extern "system" fn GetCleanupTaskName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptaskname: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
81 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
82 let this = (*this).get_impl();
83 match this.GetCleanupTaskName() {
84 ::core::result::Result::Ok(ok__) => {
85 ::core::ptr::write(ptaskname, ::core::mem::transmute(ok__));
86 ::windows::core::HRESULT(0)
87 }
88 ::core::result::Result::Err(err) => err.into(),
89 }
90 }
91 unsafe extern "system" fn GetCleanupTask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
92 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
93 let this = (*this).get_impl();
94 match this.GetCleanupTask(::core::mem::transmute_copy(&riid)) {
95 ::core::result::Result::Ok(ok__) => {
96 ::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
97 ::windows::core::HRESULT(0)
98 }
99 ::core::result::Result::Err(err) => err.into(),
100 }
101 }
102 Self {
103 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
104 EnableBITSUploads: EnableBITSUploads::<Identity, Impl, OFFSET>,
105 DisableBITSUploads: DisableBITSUploads::<Identity, Impl, OFFSET>,
106 GetCleanupTaskName: GetCleanupTaskName::<Identity, Impl, OFFSET>,
107 GetCleanupTask: GetCleanupTask::<Identity, Impl, OFFSET>,
108 }
109 }
110 pub fn matches(iid: &windows::core::GUID) -> bool {
111 iid == &<IBITSExtensionSetup as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
112 }
113 }
114 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
115 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
116 pub trait IBITSExtensionSetupFactory_Impl: Sized + super::super::System::Com::IDispatch_Impl {
117 fn GetObject(&self, path: &::windows::core::BSTR) -> ::windows::core::Result<IBITSExtensionSetup>;
118 }
119 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
120 impl ::windows::core::RuntimeName for IBITSExtensionSetupFactory {}
121 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
122 impl IBITSExtensionSetupFactory_Vtbl {
123 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetupFactory_Impl, const OFFSET: isize>() -> IBITSExtensionSetupFactory_Vtbl {
124 unsafe extern "system" fn GetObject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBITSExtensionSetupFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>, ppextensionsetup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
125 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
126 let this = (*this).get_impl();
127 match this.GetObject(::core::mem::transmute(&path)) {
128 ::core::result::Result::Ok(ok__) => {
129 ::core::ptr::write(ppextensionsetup, ::core::mem::transmute(ok__));
130 ::windows::core::HRESULT(0)
131 }
132 ::core::result::Result::Err(err) => err.into(),
133 }
134 }
135 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), GetObject: GetObject::<Identity, Impl, OFFSET> }
136 }
137 pub fn matches(iid: &windows::core::GUID) -> bool {
138 iid == &<IBITSExtensionSetupFactory as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
139 }
140 }
141 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
142 pub trait IBackgroundCopyCallback_Impl: Sized {
143 fn JobTransferred(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>) -> ::windows::core::Result<()>;
144 fn JobError(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>, perror: ::core::option::Option<&IBackgroundCopyError>) -> ::windows::core::Result<()>;
145 fn JobModification(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>, dwreserved: u32) -> ::windows::core::Result<()>;
146 }
147 impl ::windows::core::RuntimeName for IBackgroundCopyCallback {}
148 impl IBackgroundCopyCallback_Vtbl {
149 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback_Impl, const OFFSET: isize>() -> IBackgroundCopyCallback_Vtbl {
150 unsafe extern "system" fn JobTransferred<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
151 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
152 let this = (*this).get_impl();
153 this.JobTransferred(::windows::core::from_raw_borrowed(&pjob)).into()
154 }
155 unsafe extern "system" fn JobError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, perror: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
156 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
157 let this = (*this).get_impl();
158 this.JobError(::windows::core::from_raw_borrowed(&pjob), ::windows::core::from_raw_borrowed(&perror)).into()
159 }
160 unsafe extern "system" fn JobModification<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, dwreserved: u32) -> ::windows::core::HRESULT {
161 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
162 let this = (*this).get_impl();
163 this.JobModification(::windows::core::from_raw_borrowed(&pjob), ::core::mem::transmute_copy(&dwreserved)).into()
164 }
165 Self {
166 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
167 JobTransferred: JobTransferred::<Identity, Impl, OFFSET>,
168 JobError: JobError::<Identity, Impl, OFFSET>,
169 JobModification: JobModification::<Identity, Impl, OFFSET>,
170 }
171 }
172 pub fn matches(iid: &windows::core::GUID) -> bool {
173 iid == &<IBackgroundCopyCallback as ::windows::core::ComInterface>::IID
174 }
175 }
176 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
177 pub trait IBackgroundCopyCallback1_Impl: Sized {
178 fn OnStatus(&self, pgroup: ::core::option::Option<&IBackgroundCopyGroup>, pjob: ::core::option::Option<&IBackgroundCopyJob1>, dwfileindex: u32, dwstatus: u32, dwnumofretries: u32, dwwin32result: u32, dwtransportresult: u32) -> ::windows::core::Result<()>;
179 fn OnProgress(&self, progresstype: u32, pgroup: ::core::option::Option<&IBackgroundCopyGroup>, pjob: ::core::option::Option<&IBackgroundCopyJob1>, dwfileindex: u32, dwprogressvalue: u32) -> ::windows::core::Result<()>;
180 fn OnProgressEx(&self, progresstype: u32, pgroup: ::core::option::Option<&IBackgroundCopyGroup>, pjob: ::core::option::Option<&IBackgroundCopyJob1>, dwfileindex: u32, dwprogressvalue: u32, dwbytearraysize: u32, pbyte: *const u8) -> ::windows::core::Result<()>;
181 }
182 impl ::windows::core::RuntimeName for IBackgroundCopyCallback1 {}
183 impl IBackgroundCopyCallback1_Vtbl {
184 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback1_Impl, const OFFSET: isize>() -> IBackgroundCopyCallback1_Vtbl {
185 unsafe extern "system" fn OnStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgroup: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, dwfileindex: u32, dwstatus: u32, dwnumofretries: u32, dwwin32result: u32, dwtransportresult: u32) -> ::windows::core::HRESULT {
186 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
187 let this = (*this).get_impl();
188 this.OnStatus(::windows::core::from_raw_borrowed(&pgroup), ::windows::core::from_raw_borrowed(&pjob), ::core::mem::transmute_copy(&dwfileindex), ::core::mem::transmute_copy(&dwstatus), ::core::mem::transmute_copy(&dwnumofretries), ::core::mem::transmute_copy(&dwwin32result), ::core::mem::transmute_copy(&dwtransportresult)).into()
189 }
190 unsafe extern "system" fn OnProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, progresstype: u32, pgroup: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, dwfileindex: u32, dwprogressvalue: u32) -> ::windows::core::HRESULT {
191 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
192 let this = (*this).get_impl();
193 this.OnProgress(::core::mem::transmute_copy(&progresstype), ::windows::core::from_raw_borrowed(&pgroup), ::windows::core::from_raw_borrowed(&pjob), ::core::mem::transmute_copy(&dwfileindex), ::core::mem::transmute_copy(&dwprogressvalue)).into()
194 }
195 unsafe extern "system" fn OnProgressEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, progresstype: u32, pgroup: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, dwfileindex: u32, dwprogressvalue: u32, dwbytearraysize: u32, pbyte: *const u8) -> ::windows::core::HRESULT {
196 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
197 let this = (*this).get_impl();
198 this.OnProgressEx(::core::mem::transmute_copy(&progresstype), ::windows::core::from_raw_borrowed(&pgroup), ::windows::core::from_raw_borrowed(&pjob), ::core::mem::transmute_copy(&dwfileindex), ::core::mem::transmute_copy(&dwprogressvalue), ::core::mem::transmute_copy(&dwbytearraysize), ::core::mem::transmute_copy(&pbyte)).into()
199 }
200 Self {
201 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
202 OnStatus: OnStatus::<Identity, Impl, OFFSET>,
203 OnProgress: OnProgress::<Identity, Impl, OFFSET>,
204 OnProgressEx: OnProgressEx::<Identity, Impl, OFFSET>,
205 }
206 }
207 pub fn matches(iid: &windows::core::GUID) -> bool {
208 iid == &<IBackgroundCopyCallback1 as ::windows::core::ComInterface>::IID
209 }
210 }
211 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
212 pub trait IBackgroundCopyCallback2_Impl: Sized + IBackgroundCopyCallback_Impl {
213 fn FileTransferred(&self, pjob: ::core::option::Option<&IBackgroundCopyJob>, pfile: ::core::option::Option<&IBackgroundCopyFile>) -> ::windows::core::Result<()>;
214 }
215 impl ::windows::core::RuntimeName for IBackgroundCopyCallback2 {}
216 impl IBackgroundCopyCallback2_Vtbl {
217 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback2_Impl, const OFFSET: isize>() -> IBackgroundCopyCallback2_Vtbl {
218 unsafe extern "system" fn FileTransferred<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pjob: *mut ::core::ffi::c_void, pfile: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
219 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
220 let this = (*this).get_impl();
221 this.FileTransferred(::windows::core::from_raw_borrowed(&pjob), ::windows::core::from_raw_borrowed(&pfile)).into()
222 }
223 Self { base__: IBackgroundCopyCallback_Vtbl::new::<Identity, Impl, OFFSET>(), FileTransferred: FileTransferred::<Identity, Impl, OFFSET> }
224 }
225 pub fn matches(iid: &windows::core::GUID) -> bool {
226 iid == &<IBackgroundCopyCallback2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyCallback as ::windows::core::ComInterface>::IID
227 }
228 }
229 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
230 pub trait IBackgroundCopyCallback3_Impl: Sized + IBackgroundCopyCallback2_Impl {
231 fn FileRangesTransferred(&self, job: ::core::option::Option<&IBackgroundCopyJob>, file: ::core::option::Option<&IBackgroundCopyFile>, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::Result<()>;
232 }
233 impl ::windows::core::RuntimeName for IBackgroundCopyCallback3 {}
234 impl IBackgroundCopyCallback3_Vtbl {
235 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback3_Impl, const OFFSET: isize>() -> IBackgroundCopyCallback3_Vtbl {
236 unsafe extern "system" fn FileRangesTransferred<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyCallback3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, job: *mut ::core::ffi::c_void, file: *mut ::core::ffi::c_void, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::HRESULT {
237 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
238 let this = (*this).get_impl();
239 this.FileRangesTransferred(::windows::core::from_raw_borrowed(&job), ::windows::core::from_raw_borrowed(&file), ::core::mem::transmute_copy(&rangecount), ::core::mem::transmute_copy(&ranges)).into()
240 }
241 Self { base__: IBackgroundCopyCallback2_Vtbl::new::<Identity, Impl, OFFSET>(), FileRangesTransferred: FileRangesTransferred::<Identity, Impl, OFFSET> }
242 }
243 pub fn matches(iid: &windows::core::GUID) -> bool {
244 iid == &<IBackgroundCopyCallback3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyCallback as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyCallback2 as ::windows::core::ComInterface>::IID
245 }
246 }
247 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
248 pub trait IBackgroundCopyError_Impl: Sized {
249 fn GetError(&self, pcontext: *mut BG_ERROR_CONTEXT, pcode: *mut ::windows::core::HRESULT) -> ::windows::core::Result<()>;
250 fn GetFile(&self) -> ::windows::core::Result<IBackgroundCopyFile>;
251 fn GetErrorDescription(&self, languageid: u32) -> ::windows::core::Result<::windows::core::PWSTR>;
252 fn GetErrorContextDescription(&self, languageid: u32) -> ::windows::core::Result<::windows::core::PWSTR>;
253 fn GetProtocol(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
254 }
255 impl ::windows::core::RuntimeName for IBackgroundCopyError {}
256 impl IBackgroundCopyError_Vtbl {
257 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>() -> IBackgroundCopyError_Vtbl {
258 unsafe extern "system" fn GetError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontext: *mut BG_ERROR_CONTEXT, pcode: *mut ::windows::core::HRESULT) -> ::windows::core::HRESULT {
259 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
260 let this = (*this).get_impl();
261 this.GetError(::core::mem::transmute_copy(&pcontext), ::core::mem::transmute_copy(&pcode)).into()
262 }
263 unsafe extern "system" fn GetFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
264 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
265 let this = (*this).get_impl();
266 match this.GetFile() {
267 ::core::result::Result::Ok(ok__) => {
268 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
269 ::windows::core::HRESULT(0)
270 }
271 ::core::result::Result::Err(err) => err.into(),
272 }
273 }
274 unsafe extern "system" fn GetErrorDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, languageid: u32, perrordescription: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
275 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
276 let this = (*this).get_impl();
277 match this.GetErrorDescription(::core::mem::transmute_copy(&languageid)) {
278 ::core::result::Result::Ok(ok__) => {
279 ::core::ptr::write(perrordescription, ::core::mem::transmute(ok__));
280 ::windows::core::HRESULT(0)
281 }
282 ::core::result::Result::Err(err) => err.into(),
283 }
284 }
285 unsafe extern "system" fn GetErrorContextDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, languageid: u32, pcontextdescription: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
286 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
287 let this = (*this).get_impl();
288 match this.GetErrorContextDescription(::core::mem::transmute_copy(&languageid)) {
289 ::core::result::Result::Ok(ok__) => {
290 ::core::ptr::write(pcontextdescription, ::core::mem::transmute(ok__));
291 ::windows::core::HRESULT(0)
292 }
293 ::core::result::Result::Err(err) => err.into(),
294 }
295 }
296 unsafe extern "system" fn GetProtocol<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyError_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprotocol: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
297 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
298 let this = (*this).get_impl();
299 match this.GetProtocol() {
300 ::core::result::Result::Ok(ok__) => {
301 ::core::ptr::write(pprotocol, ::core::mem::transmute(ok__));
302 ::windows::core::HRESULT(0)
303 }
304 ::core::result::Result::Err(err) => err.into(),
305 }
306 }
307 Self {
308 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
309 GetError: GetError::<Identity, Impl, OFFSET>,
310 GetFile: GetFile::<Identity, Impl, OFFSET>,
311 GetErrorDescription: GetErrorDescription::<Identity, Impl, OFFSET>,
312 GetErrorContextDescription: GetErrorContextDescription::<Identity, Impl, OFFSET>,
313 GetProtocol: GetProtocol::<Identity, Impl, OFFSET>,
314 }
315 }
316 pub fn matches(iid: &windows::core::GUID) -> bool {
317 iid == &<IBackgroundCopyError as ::windows::core::ComInterface>::IID
318 }
319 }
320 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
321 #[cfg(feature = "Win32_Foundation")]
322 pub trait IBackgroundCopyFile_Impl: Sized {
323 fn GetRemoteName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
324 fn GetLocalName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
325 fn GetProgress(&self, pval: *mut BG_FILE_PROGRESS) -> ::windows::core::Result<()>;
326 }
327 #[cfg(feature = "Win32_Foundation")]
328 impl ::windows::core::RuntimeName for IBackgroundCopyFile {}
329 #[cfg(feature = "Win32_Foundation")]
330 impl IBackgroundCopyFile_Vtbl {
331 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile_Impl, const OFFSET: isize>() -> IBackgroundCopyFile_Vtbl {
332 unsafe extern "system" fn GetRemoteName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
333 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
334 let this = (*this).get_impl();
335 match this.GetRemoteName() {
336 ::core::result::Result::Ok(ok__) => {
337 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
338 ::windows::core::HRESULT(0)
339 }
340 ::core::result::Result::Err(err) => err.into(),
341 }
342 }
343 unsafe extern "system" fn GetLocalName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
344 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
345 let this = (*this).get_impl();
346 match this.GetLocalName() {
347 ::core::result::Result::Ok(ok__) => {
348 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
349 ::windows::core::HRESULT(0)
350 }
351 ::core::result::Result::Err(err) => err.into(),
352 }
353 }
354 unsafe extern "system" fn GetProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_FILE_PROGRESS) -> ::windows::core::HRESULT {
355 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
356 let this = (*this).get_impl();
357 this.GetProgress(::core::mem::transmute_copy(&pval)).into()
358 }
359 Self {
360 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
361 GetRemoteName: GetRemoteName::<Identity, Impl, OFFSET>,
362 GetLocalName: GetLocalName::<Identity, Impl, OFFSET>,
363 GetProgress: GetProgress::<Identity, Impl, OFFSET>,
364 }
365 }
366 pub fn matches(iid: &windows::core::GUID) -> bool {
367 iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID
368 }
369 }
370 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
371 #[cfg(feature = "Win32_Foundation")]
372 pub trait IBackgroundCopyFile2_Impl: Sized + IBackgroundCopyFile_Impl {
373 fn GetFileRanges(&self, rangecount: *mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()>;
374 fn SetRemoteName(&self, val: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
375 }
376 #[cfg(feature = "Win32_Foundation")]
377 impl ::windows::core::RuntimeName for IBackgroundCopyFile2 {}
378 #[cfg(feature = "Win32_Foundation")]
379 impl IBackgroundCopyFile2_Vtbl {
380 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile2_Impl, const OFFSET: isize>() -> IBackgroundCopyFile2_Vtbl {
381 unsafe extern "system" fn GetFileRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rangecount: *mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::HRESULT {
382 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
383 let this = (*this).get_impl();
384 this.GetFileRanges(::core::mem::transmute_copy(&rangecount), ::core::mem::transmute_copy(&ranges)).into()
385 }
386 unsafe extern "system" fn SetRemoteName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
387 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
388 let this = (*this).get_impl();
389 this.SetRemoteName(::core::mem::transmute(&val)).into()
390 }
391 Self {
392 base__: IBackgroundCopyFile_Vtbl::new::<Identity, Impl, OFFSET>(),
393 GetFileRanges: GetFileRanges::<Identity, Impl, OFFSET>,
394 SetRemoteName: SetRemoteName::<Identity, Impl, OFFSET>,
395 }
396 }
397 pub fn matches(iid: &windows::core::GUID) -> bool {
398 iid == &<IBackgroundCopyFile2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID
399 }
400 }
401 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
402 #[cfg(feature = "Win32_Foundation")]
403 pub trait IBackgroundCopyFile3_Impl: Sized + IBackgroundCopyFile2_Impl {
404 fn GetTemporaryName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
405 fn SetValidationState(&self, state: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
406 fn GetValidationState(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
407 fn IsDownloadedFromPeer(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
408 }
409 #[cfg(feature = "Win32_Foundation")]
410 impl ::windows::core::RuntimeName for IBackgroundCopyFile3 {}
411 #[cfg(feature = "Win32_Foundation")]
412 impl IBackgroundCopyFile3_Vtbl {
413 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile3_Impl, const OFFSET: isize>() -> IBackgroundCopyFile3_Vtbl {
414 unsafe extern "system" fn GetTemporaryName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilename: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
415 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
416 let this = (*this).get_impl();
417 match this.GetTemporaryName() {
418 ::core::result::Result::Ok(ok__) => {
419 ::core::ptr::write(pfilename, ::core::mem::transmute(ok__));
420 ::windows::core::HRESULT(0)
421 }
422 ::core::result::Result::Err(err) => err.into(),
423 }
424 }
425 unsafe extern "system" fn SetValidationState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
426 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
427 let this = (*this).get_impl();
428 this.SetValidationState(::core::mem::transmute_copy(&state)).into()
429 }
430 unsafe extern "system" fn GetValidationState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
431 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
432 let this = (*this).get_impl();
433 match this.GetValidationState() {
434 ::core::result::Result::Ok(ok__) => {
435 ::core::ptr::write(pstate, ::core::mem::transmute(ok__));
436 ::windows::core::HRESULT(0)
437 }
438 ::core::result::Result::Err(err) => err.into(),
439 }
440 }
441 unsafe extern "system" fn IsDownloadedFromPeer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
442 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
443 let this = (*this).get_impl();
444 match this.IsDownloadedFromPeer() {
445 ::core::result::Result::Ok(ok__) => {
446 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
447 ::windows::core::HRESULT(0)
448 }
449 ::core::result::Result::Err(err) => err.into(),
450 }
451 }
452 Self {
453 base__: IBackgroundCopyFile2_Vtbl::new::<Identity, Impl, OFFSET>(),
454 GetTemporaryName: GetTemporaryName::<Identity, Impl, OFFSET>,
455 SetValidationState: SetValidationState::<Identity, Impl, OFFSET>,
456 GetValidationState: GetValidationState::<Identity, Impl, OFFSET>,
457 IsDownloadedFromPeer: IsDownloadedFromPeer::<Identity, Impl, OFFSET>,
458 }
459 }
460 pub fn matches(iid: &windows::core::GUID) -> bool {
461 iid == &<IBackgroundCopyFile3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile2 as ::windows::core::ComInterface>::IID
462 }
463 }
464 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
465 #[cfg(feature = "Win32_Foundation")]
466 pub trait IBackgroundCopyFile4_Impl: Sized + IBackgroundCopyFile3_Impl {
467 fn GetPeerDownloadStats(&self, pfromorigin: *mut u64, pfrompeers: *mut u64) -> ::windows::core::Result<()>;
468 }
469 #[cfg(feature = "Win32_Foundation")]
470 impl ::windows::core::RuntimeName for IBackgroundCopyFile4 {}
471 #[cfg(feature = "Win32_Foundation")]
472 impl IBackgroundCopyFile4_Vtbl {
473 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile4_Impl, const OFFSET: isize>() -> IBackgroundCopyFile4_Vtbl {
474 unsafe extern "system" fn GetPeerDownloadStats<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfromorigin: *mut u64, pfrompeers: *mut u64) -> ::windows::core::HRESULT {
475 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
476 let this = (*this).get_impl();
477 this.GetPeerDownloadStats(::core::mem::transmute_copy(&pfromorigin), ::core::mem::transmute_copy(&pfrompeers)).into()
478 }
479 Self { base__: IBackgroundCopyFile3_Vtbl::new::<Identity, Impl, OFFSET>(), GetPeerDownloadStats: GetPeerDownloadStats::<Identity, Impl, OFFSET> }
480 }
481 pub fn matches(iid: &windows::core::GUID) -> bool {
482 iid == &<IBackgroundCopyFile4 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile3 as ::windows::core::ComInterface>::IID
483 }
484 }
485 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
486 #[cfg(feature = "Win32_Foundation")]
487 pub trait IBackgroundCopyFile5_Impl: Sized + IBackgroundCopyFile4_Impl {
488 fn SetProperty(&self, propertyid: BITS_FILE_PROPERTY_ID, propertyvalue: &BITS_FILE_PROPERTY_VALUE) -> ::windows::core::Result<()>;
489 fn GetProperty(&self, propertyid: BITS_FILE_PROPERTY_ID) -> ::windows::core::Result<BITS_FILE_PROPERTY_VALUE>;
490 }
491 #[cfg(feature = "Win32_Foundation")]
492 impl ::windows::core::RuntimeName for IBackgroundCopyFile5 {}
493 #[cfg(feature = "Win32_Foundation")]
494 impl IBackgroundCopyFile5_Vtbl {
495 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile5_Impl, const OFFSET: isize>() -> IBackgroundCopyFile5_Vtbl {
496 unsafe extern "system" fn SetProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertyid: BITS_FILE_PROPERTY_ID, propertyvalue: BITS_FILE_PROPERTY_VALUE) -> ::windows::core::HRESULT {
497 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
498 let this = (*this).get_impl();
499 this.SetProperty(::core::mem::transmute_copy(&propertyid), ::core::mem::transmute(&propertyvalue)).into()
500 }
501 unsafe extern "system" fn GetProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertyid: BITS_FILE_PROPERTY_ID, propertyvalue: *mut BITS_FILE_PROPERTY_VALUE) -> ::windows::core::HRESULT {
502 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
503 let this = (*this).get_impl();
504 match this.GetProperty(::core::mem::transmute_copy(&propertyid)) {
505 ::core::result::Result::Ok(ok__) => {
506 ::core::ptr::write(propertyvalue, ::core::mem::transmute(ok__));
507 ::windows::core::HRESULT(0)
508 }
509 ::core::result::Result::Err(err) => err.into(),
510 }
511 }
512 Self {
513 base__: IBackgroundCopyFile4_Vtbl::new::<Identity, Impl, OFFSET>(),
514 SetProperty: SetProperty::<Identity, Impl, OFFSET>,
515 GetProperty: GetProperty::<Identity, Impl, OFFSET>,
516 }
517 }
518 pub fn matches(iid: &windows::core::GUID) -> bool {
519 iid == &<IBackgroundCopyFile5 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile4 as ::windows::core::ComInterface>::IID
520 }
521 }
522 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
523 #[cfg(feature = "Win32_Foundation")]
524 pub trait IBackgroundCopyFile6_Impl: Sized + IBackgroundCopyFile5_Impl {
525 fn UpdateDownloadPosition(&self, offset: u64) -> ::windows::core::Result<()>;
526 fn RequestFileRanges(&self, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::Result<()>;
527 fn GetFilledFileRanges(&self, rangecount: *mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()>;
528 }
529 #[cfg(feature = "Win32_Foundation")]
530 impl ::windows::core::RuntimeName for IBackgroundCopyFile6 {}
531 #[cfg(feature = "Win32_Foundation")]
532 impl IBackgroundCopyFile6_Vtbl {
533 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile6_Impl, const OFFSET: isize>() -> IBackgroundCopyFile6_Vtbl {
534 unsafe extern "system" fn UpdateDownloadPosition<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, offset: u64) -> ::windows::core::HRESULT {
535 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
536 let this = (*this).get_impl();
537 this.UpdateDownloadPosition(::core::mem::transmute_copy(&offset)).into()
538 }
539 unsafe extern "system" fn RequestFileRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::HRESULT {
540 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
541 let this = (*this).get_impl();
542 this.RequestFileRanges(::core::mem::transmute_copy(&rangecount), ::core::mem::transmute_copy(&ranges)).into()
543 }
544 unsafe extern "system" fn GetFilledFileRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyFile6_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rangecount: *mut u32, ranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::HRESULT {
545 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
546 let this = (*this).get_impl();
547 this.GetFilledFileRanges(::core::mem::transmute_copy(&rangecount), ::core::mem::transmute_copy(&ranges)).into()
548 }
549 Self {
550 base__: IBackgroundCopyFile5_Vtbl::new::<Identity, Impl, OFFSET>(),
551 UpdateDownloadPosition: UpdateDownloadPosition::<Identity, Impl, OFFSET>,
552 RequestFileRanges: RequestFileRanges::<Identity, Impl, OFFSET>,
553 GetFilledFileRanges: GetFilledFileRanges::<Identity, Impl, OFFSET>,
554 }
555 }
556 pub fn matches(iid: &windows::core::GUID) -> bool {
557 iid == &<IBackgroundCopyFile6 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile4 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyFile5 as ::windows::core::ComInterface>::IID
558 }
559 }
560 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
561 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
562 pub trait IBackgroundCopyGroup_Impl: Sized {
563 fn GetProp(&self, propid: GROUPPROP) -> ::windows::core::Result<super::super::System::Com::VARIANT>;
564 fn SetProp(&self, propid: GROUPPROP, pvarval: *const super::super::System::Com::VARIANT) -> ::windows::core::Result<()>;
565 fn GetProgress(&self, dwflags: u32) -> ::windows::core::Result<u32>;
566 fn GetStatus(&self, pdwstatus: *mut u32, pdwjobindex: *mut u32) -> ::windows::core::Result<()>;
567 fn GetJob(&self, jobid: &::windows::core::GUID) -> ::windows::core::Result<IBackgroundCopyJob1>;
568 fn SuspendGroup(&self) -> ::windows::core::Result<()>;
569 fn ResumeGroup(&self) -> ::windows::core::Result<()>;
570 fn CancelGroup(&self) -> ::windows::core::Result<()>;
571 fn Size(&self) -> ::windows::core::Result<u32>;
572 fn GroupID(&self) -> ::windows::core::Result<::windows::core::GUID>;
573 fn CreateJob(&self, guidjobid: &::windows::core::GUID) -> ::windows::core::Result<IBackgroundCopyJob1>;
574 fn EnumJobs(&self, dwflags: u32) -> ::windows::core::Result<IEnumBackgroundCopyJobs1>;
575 fn SwitchToForeground(&self) -> ::windows::core::Result<()>;
576 fn QueryNewJobInterface(&self, iid: *const ::windows::core::GUID) -> ::windows::core::Result<::windows::core::IUnknown>;
577 fn SetNotificationPointer(&self, iid: *const ::windows::core::GUID, punk: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
578 }
579 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
580 impl ::windows::core::RuntimeName for IBackgroundCopyGroup {}
581 #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
582 impl IBackgroundCopyGroup_Vtbl {
583 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>() -> IBackgroundCopyGroup_Vtbl {
584 unsafe extern "system" fn GetProp<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propid: GROUPPROP, pvarval: *mut super::super::System::Com::VARIANT) -> ::windows::core::HRESULT {
585 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
586 let this = (*this).get_impl();
587 match this.GetProp(::core::mem::transmute_copy(&propid)) {
588 ::core::result::Result::Ok(ok__) => {
589 ::core::ptr::write(pvarval, ::core::mem::transmute(ok__));
590 ::windows::core::HRESULT(0)
591 }
592 ::core::result::Result::Err(err) => err.into(),
593 }
594 }
595 unsafe extern "system" fn SetProp<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propid: GROUPPROP, pvarval: *const super::super::System::Com::VARIANT) -> ::windows::core::HRESULT {
596 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
597 let this = (*this).get_impl();
598 this.SetProp(::core::mem::transmute_copy(&propid), ::core::mem::transmute_copy(&pvarval)).into()
599 }
600 unsafe extern "system" fn GetProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, pdwprogress: *mut u32) -> ::windows::core::HRESULT {
601 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
602 let this = (*this).get_impl();
603 match this.GetProgress(::core::mem::transmute_copy(&dwflags)) {
604 ::core::result::Result::Ok(ok__) => {
605 ::core::ptr::write(pdwprogress, ::core::mem::transmute(ok__));
606 ::windows::core::HRESULT(0)
607 }
608 ::core::result::Result::Err(err) => err.into(),
609 }
610 }
611 unsafe extern "system" fn GetStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwstatus: *mut u32, pdwjobindex: *mut u32) -> ::windows::core::HRESULT {
612 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
613 let this = (*this).get_impl();
614 this.GetStatus(::core::mem::transmute_copy(&pdwstatus), ::core::mem::transmute_copy(&pdwjobindex)).into()
615 }
616 unsafe extern "system" fn GetJob<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, jobid: ::windows::core::GUID, ppjob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
617 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
618 let this = (*this).get_impl();
619 match this.GetJob(::core::mem::transmute(&jobid)) {
620 ::core::result::Result::Ok(ok__) => {
621 ::core::ptr::write(ppjob, ::core::mem::transmute(ok__));
622 ::windows::core::HRESULT(0)
623 }
624 ::core::result::Result::Err(err) => err.into(),
625 }
626 }
627 unsafe extern "system" fn SuspendGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
628 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
629 let this = (*this).get_impl();
630 this.SuspendGroup().into()
631 }
632 unsafe extern "system" fn ResumeGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
633 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
634 let this = (*this).get_impl();
635 this.ResumeGroup().into()
636 }
637 unsafe extern "system" fn CancelGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
638 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
639 let this = (*this).get_impl();
640 this.CancelGroup().into()
641 }
642 unsafe extern "system" fn Size<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwsize: *mut u32) -> ::windows::core::HRESULT {
643 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
644 let this = (*this).get_impl();
645 match this.Size() {
646 ::core::result::Result::Ok(ok__) => {
647 ::core::ptr::write(pdwsize, ::core::mem::transmute(ok__));
648 ::windows::core::HRESULT(0)
649 }
650 ::core::result::Result::Err(err) => err.into(),
651 }
652 }
653 unsafe extern "system" fn GroupID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidgroupid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
654 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
655 let this = (*this).get_impl();
656 match this.GroupID() {
657 ::core::result::Result::Ok(ok__) => {
658 ::core::ptr::write(pguidgroupid, ::core::mem::transmute(ok__));
659 ::windows::core::HRESULT(0)
660 }
661 ::core::result::Result::Err(err) => err.into(),
662 }
663 }
664 unsafe extern "system" fn CreateJob<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidjobid: ::windows::core::GUID, ppjob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
665 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
666 let this = (*this).get_impl();
667 match this.CreateJob(::core::mem::transmute(&guidjobid)) {
668 ::core::result::Result::Ok(ok__) => {
669 ::core::ptr::write(ppjob, ::core::mem::transmute(ok__));
670 ::windows::core::HRESULT(0)
671 }
672 ::core::result::Result::Err(err) => err.into(),
673 }
674 }
675 unsafe extern "system" fn EnumJobs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppenumjobs: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
676 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
677 let this = (*this).get_impl();
678 match this.EnumJobs(::core::mem::transmute_copy(&dwflags)) {
679 ::core::result::Result::Ok(ok__) => {
680 ::core::ptr::write(ppenumjobs, ::core::mem::transmute(ok__));
681 ::windows::core::HRESULT(0)
682 }
683 ::core::result::Result::Err(err) => err.into(),
684 }
685 }
686 unsafe extern "system" fn SwitchToForeground<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
687 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
688 let this = (*this).get_impl();
689 this.SwitchToForeground().into()
690 }
691 unsafe extern "system" fn QueryNewJobInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iid: *const ::windows::core::GUID, punk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
692 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
693 let this = (*this).get_impl();
694 match this.QueryNewJobInterface(::core::mem::transmute_copy(&iid)) {
695 ::core::result::Result::Ok(ok__) => {
696 ::core::ptr::write(punk, ::core::mem::transmute(ok__));
697 ::windows::core::HRESULT(0)
698 }
699 ::core::result::Result::Err(err) => err.into(),
700 }
701 }
702 unsafe extern "system" fn SetNotificationPointer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyGroup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iid: *const ::windows::core::GUID, punk: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
703 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
704 let this = (*this).get_impl();
705 this.SetNotificationPointer(::core::mem::transmute_copy(&iid), ::windows::core::from_raw_borrowed(&punk)).into()
706 }
707 Self {
708 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
709 GetProp: GetProp::<Identity, Impl, OFFSET>,
710 SetProp: SetProp::<Identity, Impl, OFFSET>,
711 GetProgress: GetProgress::<Identity, Impl, OFFSET>,
712 GetStatus: GetStatus::<Identity, Impl, OFFSET>,
713 GetJob: GetJob::<Identity, Impl, OFFSET>,
714 SuspendGroup: SuspendGroup::<Identity, Impl, OFFSET>,
715 ResumeGroup: ResumeGroup::<Identity, Impl, OFFSET>,
716 CancelGroup: CancelGroup::<Identity, Impl, OFFSET>,
717 Size: Size::<Identity, Impl, OFFSET>,
718 GroupID: GroupID::<Identity, Impl, OFFSET>,
719 CreateJob: CreateJob::<Identity, Impl, OFFSET>,
720 EnumJobs: EnumJobs::<Identity, Impl, OFFSET>,
721 SwitchToForeground: SwitchToForeground::<Identity, Impl, OFFSET>,
722 QueryNewJobInterface: QueryNewJobInterface::<Identity, Impl, OFFSET>,
723 SetNotificationPointer: SetNotificationPointer::<Identity, Impl, OFFSET>,
724 }
725 }
726 pub fn matches(iid: &windows::core::GUID) -> bool {
727 iid == &<IBackgroundCopyGroup as ::windows::core::ComInterface>::IID
728 }
729 }
730 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
731 #[cfg(feature = "Win32_Foundation")]
732 pub trait IBackgroundCopyJob_Impl: Sized {
733 fn AddFileSet(&self, cfilecount: u32, pfileset: *const BG_FILE_INFO) -> ::windows::core::Result<()>;
734 fn AddFile(&self, remoteurl: &::windows::core::PCWSTR, localname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
735 fn EnumFiles(&self) -> ::windows::core::Result<IEnumBackgroundCopyFiles>;
736 fn Suspend(&self) -> ::windows::core::Result<()>;
737 fn Resume(&self) -> ::windows::core::Result<()>;
738 fn Cancel(&self) -> ::windows::core::Result<()>;
739 fn Complete(&self) -> ::windows::core::Result<()>;
740 fn GetId(&self) -> ::windows::core::Result<::windows::core::GUID>;
741 fn GetType(&self) -> ::windows::core::Result<BG_JOB_TYPE>;
742 fn GetProgress(&self, pval: *mut BG_JOB_PROGRESS) -> ::windows::core::Result<()>;
743 fn GetTimes(&self, pval: *mut BG_JOB_TIMES) -> ::windows::core::Result<()>;
744 fn GetState(&self) -> ::windows::core::Result<BG_JOB_STATE>;
745 fn GetError(&self) -> ::windows::core::Result<IBackgroundCopyError>;
746 fn GetOwner(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
747 fn SetDisplayName(&self, val: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
748 fn GetDisplayName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
749 fn SetDescription(&self, val: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
750 fn GetDescription(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
751 fn SetPriority(&self, val: BG_JOB_PRIORITY) -> ::windows::core::Result<()>;
752 fn GetPriority(&self) -> ::windows::core::Result<BG_JOB_PRIORITY>;
753 fn SetNotifyFlags(&self, val: u32) -> ::windows::core::Result<()>;
754 fn GetNotifyFlags(&self) -> ::windows::core::Result<u32>;
755 fn SetNotifyInterface(&self, val: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
756 fn GetNotifyInterface(&self) -> ::windows::core::Result<::windows::core::IUnknown>;
757 fn SetMinimumRetryDelay(&self, seconds: u32) -> ::windows::core::Result<()>;
758 fn GetMinimumRetryDelay(&self) -> ::windows::core::Result<u32>;
759 fn SetNoProgressTimeout(&self, seconds: u32) -> ::windows::core::Result<()>;
760 fn GetNoProgressTimeout(&self) -> ::windows::core::Result<u32>;
761 fn GetErrorCount(&self) -> ::windows::core::Result<u32>;
762 fn SetProxySettings(&self, proxyusage: BG_JOB_PROXY_USAGE, proxylist: &::windows::core::PCWSTR, proxybypasslist: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
763 fn GetProxySettings(&self, pproxyusage: *mut BG_JOB_PROXY_USAGE, pproxylist: *mut ::windows::core::PWSTR, pproxybypasslist: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()>;
764 fn TakeOwnership(&self) -> ::windows::core::Result<()>;
765 }
766 #[cfg(feature = "Win32_Foundation")]
767 impl ::windows::core::RuntimeName for IBackgroundCopyJob {}
768 #[cfg(feature = "Win32_Foundation")]
769 impl IBackgroundCopyJob_Vtbl {
770 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>() -> IBackgroundCopyJob_Vtbl {
771 unsafe extern "system" fn AddFileSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilecount: u32, pfileset: *const BG_FILE_INFO) -> ::windows::core::HRESULT {
772 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
773 let this = (*this).get_impl();
774 this.AddFileSet(::core::mem::transmute_copy(&cfilecount), ::core::mem::transmute_copy(&pfileset)).into()
775 }
776 unsafe extern "system" fn AddFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteurl: ::windows::core::PCWSTR, localname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
777 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
778 let this = (*this).get_impl();
779 this.AddFile(::core::mem::transmute(&remoteurl), ::core::mem::transmute(&localname)).into()
780 }
781 unsafe extern "system" fn EnumFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
782 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
783 let this = (*this).get_impl();
784 match this.EnumFiles() {
785 ::core::result::Result::Ok(ok__) => {
786 ::core::ptr::write(penum, ::core::mem::transmute(ok__));
787 ::windows::core::HRESULT(0)
788 }
789 ::core::result::Result::Err(err) => err.into(),
790 }
791 }
792 unsafe extern "system" fn Suspend<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
793 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
794 let this = (*this).get_impl();
795 this.Suspend().into()
796 }
797 unsafe extern "system" fn Resume<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
798 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
799 let this = (*this).get_impl();
800 this.Resume().into()
801 }
802 unsafe extern "system" fn Cancel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
803 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
804 let this = (*this).get_impl();
805 this.Cancel().into()
806 }
807 unsafe extern "system" fn Complete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
808 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
809 let this = (*this).get_impl();
810 this.Complete().into()
811 }
812 unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
813 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
814 let this = (*this).get_impl();
815 match this.GetId() {
816 ::core::result::Result::Ok(ok__) => {
817 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
818 ::windows::core::HRESULT(0)
819 }
820 ::core::result::Result::Err(err) => err.into(),
821 }
822 }
823 unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_JOB_TYPE) -> ::windows::core::HRESULT {
824 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
825 let this = (*this).get_impl();
826 match this.GetType() {
827 ::core::result::Result::Ok(ok__) => {
828 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
829 ::windows::core::HRESULT(0)
830 }
831 ::core::result::Result::Err(err) => err.into(),
832 }
833 }
834 unsafe extern "system" fn GetProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_JOB_PROGRESS) -> ::windows::core::HRESULT {
835 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
836 let this = (*this).get_impl();
837 this.GetProgress(::core::mem::transmute_copy(&pval)).into()
838 }
839 unsafe extern "system" fn GetTimes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_JOB_TIMES) -> ::windows::core::HRESULT {
840 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
841 let this = (*this).get_impl();
842 this.GetTimes(::core::mem::transmute_copy(&pval)).into()
843 }
844 unsafe extern "system" fn GetState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_JOB_STATE) -> ::windows::core::HRESULT {
845 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
846 let this = (*this).get_impl();
847 match this.GetState() {
848 ::core::result::Result::Ok(ok__) => {
849 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
850 ::windows::core::HRESULT(0)
851 }
852 ::core::result::Result::Err(err) => err.into(),
853 }
854 }
855 unsafe extern "system" fn GetError<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pperror: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
856 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
857 let this = (*this).get_impl();
858 match this.GetError() {
859 ::core::result::Result::Ok(ok__) => {
860 ::core::ptr::write(pperror, ::core::mem::transmute(ok__));
861 ::windows::core::HRESULT(0)
862 }
863 ::core::result::Result::Err(err) => err.into(),
864 }
865 }
866 unsafe extern "system" fn GetOwner<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
867 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
868 let this = (*this).get_impl();
869 match this.GetOwner() {
870 ::core::result::Result::Ok(ok__) => {
871 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
872 ::windows::core::HRESULT(0)
873 }
874 ::core::result::Result::Err(err) => err.into(),
875 }
876 }
877 unsafe extern "system" fn SetDisplayName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
878 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
879 let this = (*this).get_impl();
880 this.SetDisplayName(::core::mem::transmute(&val)).into()
881 }
882 unsafe extern "system" fn GetDisplayName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
883 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
884 let this = (*this).get_impl();
885 match this.GetDisplayName() {
886 ::core::result::Result::Ok(ok__) => {
887 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
888 ::windows::core::HRESULT(0)
889 }
890 ::core::result::Result::Err(err) => err.into(),
891 }
892 }
893 unsafe extern "system" fn SetDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
894 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
895 let this = (*this).get_impl();
896 this.SetDescription(::core::mem::transmute(&val)).into()
897 }
898 unsafe extern "system" fn GetDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
899 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
900 let this = (*this).get_impl();
901 match this.GetDescription() {
902 ::core::result::Result::Ok(ok__) => {
903 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
904 ::windows::core::HRESULT(0)
905 }
906 ::core::result::Result::Err(err) => err.into(),
907 }
908 }
909 unsafe extern "system" fn SetPriority<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: BG_JOB_PRIORITY) -> ::windows::core::HRESULT {
910 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
911 let this = (*this).get_impl();
912 this.SetPriority(::core::mem::transmute_copy(&val)).into()
913 }
914 unsafe extern "system" fn GetPriority<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut BG_JOB_PRIORITY) -> ::windows::core::HRESULT {
915 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
916 let this = (*this).get_impl();
917 match this.GetPriority() {
918 ::core::result::Result::Ok(ok__) => {
919 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
920 ::windows::core::HRESULT(0)
921 }
922 ::core::result::Result::Err(err) => err.into(),
923 }
924 }
925 unsafe extern "system" fn SetNotifyFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: u32) -> ::windows::core::HRESULT {
926 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
927 let this = (*this).get_impl();
928 this.SetNotifyFlags(::core::mem::transmute_copy(&val)).into()
929 }
930 unsafe extern "system" fn GetNotifyFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut u32) -> ::windows::core::HRESULT {
931 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
932 let this = (*this).get_impl();
933 match this.GetNotifyFlags() {
934 ::core::result::Result::Ok(ok__) => {
935 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
936 ::windows::core::HRESULT(0)
937 }
938 ::core::result::Result::Err(err) => err.into(),
939 }
940 }
941 unsafe extern "system" fn SetNotifyInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
942 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
943 let this = (*this).get_impl();
944 this.SetNotifyInterface(::windows::core::from_raw_borrowed(&val)).into()
945 }
946 unsafe extern "system" fn GetNotifyInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
947 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
948 let this = (*this).get_impl();
949 match this.GetNotifyInterface() {
950 ::core::result::Result::Ok(ok__) => {
951 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
952 ::windows::core::HRESULT(0)
953 }
954 ::core::result::Result::Err(err) => err.into(),
955 }
956 }
957 unsafe extern "system" fn SetMinimumRetryDelay<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
958 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
959 let this = (*this).get_impl();
960 this.SetMinimumRetryDelay(::core::mem::transmute_copy(&seconds)).into()
961 }
962 unsafe extern "system" fn GetMinimumRetryDelay<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
963 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
964 let this = (*this).get_impl();
965 match this.GetMinimumRetryDelay() {
966 ::core::result::Result::Ok(ok__) => {
967 ::core::ptr::write(seconds, ::core::mem::transmute(ok__));
968 ::windows::core::HRESULT(0)
969 }
970 ::core::result::Result::Err(err) => err.into(),
971 }
972 }
973 unsafe extern "system" fn SetNoProgressTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
974 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
975 let this = (*this).get_impl();
976 this.SetNoProgressTimeout(::core::mem::transmute_copy(&seconds)).into()
977 }
978 unsafe extern "system" fn GetNoProgressTimeout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: *mut u32) -> ::windows::core::HRESULT {
979 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
980 let this = (*this).get_impl();
981 match this.GetNoProgressTimeout() {
982 ::core::result::Result::Ok(ok__) => {
983 ::core::ptr::write(seconds, ::core::mem::transmute(ok__));
984 ::windows::core::HRESULT(0)
985 }
986 ::core::result::Result::Err(err) => err.into(),
987 }
988 }
989 unsafe extern "system" fn GetErrorCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, errors: *mut u32) -> ::windows::core::HRESULT {
990 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
991 let this = (*this).get_impl();
992 match this.GetErrorCount() {
993 ::core::result::Result::Ok(ok__) => {
994 ::core::ptr::write(errors, ::core::mem::transmute(ok__));
995 ::windows::core::HRESULT(0)
996 }
997 ::core::result::Result::Err(err) => err.into(),
998 }
999 }
1000 unsafe extern "system" fn SetProxySettings<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, proxyusage: BG_JOB_PROXY_USAGE, proxylist: ::windows::core::PCWSTR, proxybypasslist: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1001 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1002 let this = (*this).get_impl();
1003 this.SetProxySettings(::core::mem::transmute_copy(&proxyusage), ::core::mem::transmute(&proxylist), ::core::mem::transmute(&proxybypasslist)).into()
1004 }
1005 unsafe extern "system" fn GetProxySettings<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pproxyusage: *mut BG_JOB_PROXY_USAGE, pproxylist: *mut ::windows::core::PWSTR, pproxybypasslist: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1006 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1007 let this = (*this).get_impl();
1008 this.GetProxySettings(::core::mem::transmute_copy(&pproxyusage), ::core::mem::transmute_copy(&pproxylist), ::core::mem::transmute_copy(&pproxybypasslist)).into()
1009 }
1010 unsafe extern "system" fn TakeOwnership<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1011 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1012 let this = (*this).get_impl();
1013 this.TakeOwnership().into()
1014 }
1015 Self {
1016 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1017 AddFileSet: AddFileSet::<Identity, Impl, OFFSET>,
1018 AddFile: AddFile::<Identity, Impl, OFFSET>,
1019 EnumFiles: EnumFiles::<Identity, Impl, OFFSET>,
1020 Suspend: Suspend::<Identity, Impl, OFFSET>,
1021 Resume: Resume::<Identity, Impl, OFFSET>,
1022 Cancel: Cancel::<Identity, Impl, OFFSET>,
1023 Complete: Complete::<Identity, Impl, OFFSET>,
1024 GetId: GetId::<Identity, Impl, OFFSET>,
1025 GetType: GetType::<Identity, Impl, OFFSET>,
1026 GetProgress: GetProgress::<Identity, Impl, OFFSET>,
1027 GetTimes: GetTimes::<Identity, Impl, OFFSET>,
1028 GetState: GetState::<Identity, Impl, OFFSET>,
1029 GetError: GetError::<Identity, Impl, OFFSET>,
1030 GetOwner: GetOwner::<Identity, Impl, OFFSET>,
1031 SetDisplayName: SetDisplayName::<Identity, Impl, OFFSET>,
1032 GetDisplayName: GetDisplayName::<Identity, Impl, OFFSET>,
1033 SetDescription: SetDescription::<Identity, Impl, OFFSET>,
1034 GetDescription: GetDescription::<Identity, Impl, OFFSET>,
1035 SetPriority: SetPriority::<Identity, Impl, OFFSET>,
1036 GetPriority: GetPriority::<Identity, Impl, OFFSET>,
1037 SetNotifyFlags: SetNotifyFlags::<Identity, Impl, OFFSET>,
1038 GetNotifyFlags: GetNotifyFlags::<Identity, Impl, OFFSET>,
1039 SetNotifyInterface: SetNotifyInterface::<Identity, Impl, OFFSET>,
1040 GetNotifyInterface: GetNotifyInterface::<Identity, Impl, OFFSET>,
1041 SetMinimumRetryDelay: SetMinimumRetryDelay::<Identity, Impl, OFFSET>,
1042 GetMinimumRetryDelay: GetMinimumRetryDelay::<Identity, Impl, OFFSET>,
1043 SetNoProgressTimeout: SetNoProgressTimeout::<Identity, Impl, OFFSET>,
1044 GetNoProgressTimeout: GetNoProgressTimeout::<Identity, Impl, OFFSET>,
1045 GetErrorCount: GetErrorCount::<Identity, Impl, OFFSET>,
1046 SetProxySettings: SetProxySettings::<Identity, Impl, OFFSET>,
1047 GetProxySettings: GetProxySettings::<Identity, Impl, OFFSET>,
1048 TakeOwnership: TakeOwnership::<Identity, Impl, OFFSET>,
1049 }
1050 }
1051 pub fn matches(iid: &windows::core::GUID) -> bool {
1052 iid == &<IBackgroundCopyJob as ::windows::core::ComInterface>::IID
1053 }
1054 }
1055 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1056 pub trait IBackgroundCopyJob1_Impl: Sized {
1057 fn CancelJob(&self) -> ::windows::core::Result<()>;
1058 fn GetProgress(&self, dwflags: u32) -> ::windows::core::Result<u32>;
1059 fn GetStatus(&self, pdwstatus: *mut u32, pdwwin32result: *mut u32, pdwtransportresult: *mut u32, pdwnumofretries: *mut u32) -> ::windows::core::Result<()>;
1060 fn AddFiles(&self, cfilecount: u32, ppfileset: *const *const FILESETINFO) -> ::windows::core::Result<()>;
1061 fn GetFile(&self, cfileindex: u32) -> ::windows::core::Result<FILESETINFO>;
1062 fn GetFileCount(&self) -> ::windows::core::Result<u32>;
1063 fn SwitchToForeground(&self) -> ::windows::core::Result<()>;
1064 fn JobID(&self) -> ::windows::core::Result<::windows::core::GUID>;
1065 }
1066 impl ::windows::core::RuntimeName for IBackgroundCopyJob1 {}
1067 impl IBackgroundCopyJob1_Vtbl {
1068 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>() -> IBackgroundCopyJob1_Vtbl {
1069 unsafe extern "system" fn CancelJob<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1070 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1071 let this = (*this).get_impl();
1072 this.CancelJob().into()
1073 }
1074 unsafe extern "system" fn GetProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, pdwprogress: *mut u32) -> ::windows::core::HRESULT {
1075 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1076 let this = (*this).get_impl();
1077 match this.GetProgress(::core::mem::transmute_copy(&dwflags)) {
1078 ::core::result::Result::Ok(ok__) => {
1079 ::core::ptr::write(pdwprogress, ::core::mem::transmute(ok__));
1080 ::windows::core::HRESULT(0)
1081 }
1082 ::core::result::Result::Err(err) => err.into(),
1083 }
1084 }
1085 unsafe extern "system" fn GetStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwstatus: *mut u32, pdwwin32result: *mut u32, pdwtransportresult: *mut u32, pdwnumofretries: *mut u32) -> ::windows::core::HRESULT {
1086 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1087 let this = (*this).get_impl();
1088 this.GetStatus(::core::mem::transmute_copy(&pdwstatus), ::core::mem::transmute_copy(&pdwwin32result), ::core::mem::transmute_copy(&pdwtransportresult), ::core::mem::transmute_copy(&pdwnumofretries)).into()
1089 }
1090 unsafe extern "system" fn AddFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilecount: u32, ppfileset: *const *const FILESETINFO) -> ::windows::core::HRESULT {
1091 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1092 let this = (*this).get_impl();
1093 this.AddFiles(::core::mem::transmute_copy(&cfilecount), ::core::mem::transmute_copy(&ppfileset)).into()
1094 }
1095 unsafe extern "system" fn GetFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfileindex: u32, pfileinfo: *mut FILESETINFO) -> ::windows::core::HRESULT {
1096 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1097 let this = (*this).get_impl();
1098 match this.GetFile(::core::mem::transmute_copy(&cfileindex)) {
1099 ::core::result::Result::Ok(ok__) => {
1100 ::core::ptr::write(pfileinfo, ::core::mem::transmute(ok__));
1101 ::windows::core::HRESULT(0)
1102 }
1103 ::core::result::Result::Err(err) => err.into(),
1104 }
1105 }
1106 unsafe extern "system" fn GetFileCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwfilecount: *mut u32) -> ::windows::core::HRESULT {
1107 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1108 let this = (*this).get_impl();
1109 match this.GetFileCount() {
1110 ::core::result::Result::Ok(ok__) => {
1111 ::core::ptr::write(pdwfilecount, ::core::mem::transmute(ok__));
1112 ::windows::core::HRESULT(0)
1113 }
1114 ::core::result::Result::Err(err) => err.into(),
1115 }
1116 }
1117 unsafe extern "system" fn SwitchToForeground<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1118 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1119 let this = (*this).get_impl();
1120 this.SwitchToForeground().into()
1121 }
1122 unsafe extern "system" fn JobID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidjobid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
1123 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1124 let this = (*this).get_impl();
1125 match this.JobID() {
1126 ::core::result::Result::Ok(ok__) => {
1127 ::core::ptr::write(pguidjobid, ::core::mem::transmute(ok__));
1128 ::windows::core::HRESULT(0)
1129 }
1130 ::core::result::Result::Err(err) => err.into(),
1131 }
1132 }
1133 Self {
1134 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1135 CancelJob: CancelJob::<Identity, Impl, OFFSET>,
1136 GetProgress: GetProgress::<Identity, Impl, OFFSET>,
1137 GetStatus: GetStatus::<Identity, Impl, OFFSET>,
1138 AddFiles: AddFiles::<Identity, Impl, OFFSET>,
1139 GetFile: GetFile::<Identity, Impl, OFFSET>,
1140 GetFileCount: GetFileCount::<Identity, Impl, OFFSET>,
1141 SwitchToForeground: SwitchToForeground::<Identity, Impl, OFFSET>,
1142 JobID: JobID::<Identity, Impl, OFFSET>,
1143 }
1144 }
1145 pub fn matches(iid: &windows::core::GUID) -> bool {
1146 iid == &<IBackgroundCopyJob1 as ::windows::core::ComInterface>::IID
1147 }
1148 }
1149 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1150 #[cfg(feature = "Win32_Foundation")]
1151 pub trait IBackgroundCopyJob2_Impl: Sized + IBackgroundCopyJob_Impl {
1152 fn SetNotifyCmdLine(&self, program: &::windows::core::PCWSTR, parameters: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1153 fn GetNotifyCmdLine(&self, pprogram: *mut ::windows::core::PWSTR, pparameters: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()>;
1154 fn GetReplyProgress(&self, pprogress: *mut BG_JOB_REPLY_PROGRESS) -> ::windows::core::Result<()>;
1155 fn GetReplyData(&self, ppbuffer: *mut *mut u8, plength: *mut u64) -> ::windows::core::Result<()>;
1156 fn SetReplyFileName(&self, replyfilename: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1157 fn GetReplyFileName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1158 fn SetCredentials(&self, credentials: *const BG_AUTH_CREDENTIALS) -> ::windows::core::Result<()>;
1159 fn RemoveCredentials(&self, target: BG_AUTH_TARGET, scheme: BG_AUTH_SCHEME) -> ::windows::core::Result<()>;
1160 }
1161 #[cfg(feature = "Win32_Foundation")]
1162 impl ::windows::core::RuntimeName for IBackgroundCopyJob2 {}
1163 #[cfg(feature = "Win32_Foundation")]
1164 impl IBackgroundCopyJob2_Vtbl {
1165 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>() -> IBackgroundCopyJob2_Vtbl {
1166 unsafe extern "system" fn SetNotifyCmdLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, program: ::windows::core::PCWSTR, parameters: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1167 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1168 let this = (*this).get_impl();
1169 this.SetNotifyCmdLine(::core::mem::transmute(&program), ::core::mem::transmute(&parameters)).into()
1170 }
1171 unsafe extern "system" fn GetNotifyCmdLine<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprogram: *mut ::windows::core::PWSTR, pparameters: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1172 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1173 let this = (*this).get_impl();
1174 this.GetNotifyCmdLine(::core::mem::transmute_copy(&pprogram), ::core::mem::transmute_copy(&pparameters)).into()
1175 }
1176 unsafe extern "system" fn GetReplyProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprogress: *mut BG_JOB_REPLY_PROGRESS) -> ::windows::core::HRESULT {
1177 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1178 let this = (*this).get_impl();
1179 this.GetReplyProgress(::core::mem::transmute_copy(&pprogress)).into()
1180 }
1181 unsafe extern "system" fn GetReplyData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppbuffer: *mut *mut u8, plength: *mut u64) -> ::windows::core::HRESULT {
1182 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1183 let this = (*this).get_impl();
1184 this.GetReplyData(::core::mem::transmute_copy(&ppbuffer), ::core::mem::transmute_copy(&plength)).into()
1185 }
1186 unsafe extern "system" fn SetReplyFileName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, replyfilename: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1187 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1188 let this = (*this).get_impl();
1189 this.SetReplyFileName(::core::mem::transmute(&replyfilename)).into()
1190 }
1191 unsafe extern "system" fn GetReplyFileName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, preplyfilename: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1192 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1193 let this = (*this).get_impl();
1194 match this.GetReplyFileName() {
1195 ::core::result::Result::Ok(ok__) => {
1196 ::core::ptr::write(preplyfilename, ::core::mem::transmute(ok__));
1197 ::windows::core::HRESULT(0)
1198 }
1199 ::core::result::Result::Err(err) => err.into(),
1200 }
1201 }
1202 unsafe extern "system" fn SetCredentials<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, credentials: *const BG_AUTH_CREDENTIALS) -> ::windows::core::HRESULT {
1203 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1204 let this = (*this).get_impl();
1205 this.SetCredentials(::core::mem::transmute_copy(&credentials)).into()
1206 }
1207 unsafe extern "system" fn RemoveCredentials<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, target: BG_AUTH_TARGET, scheme: BG_AUTH_SCHEME) -> ::windows::core::HRESULT {
1208 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1209 let this = (*this).get_impl();
1210 this.RemoveCredentials(::core::mem::transmute_copy(&target), ::core::mem::transmute_copy(&scheme)).into()
1211 }
1212 Self {
1213 base__: IBackgroundCopyJob_Vtbl::new::<Identity, Impl, OFFSET>(),
1214 SetNotifyCmdLine: SetNotifyCmdLine::<Identity, Impl, OFFSET>,
1215 GetNotifyCmdLine: GetNotifyCmdLine::<Identity, Impl, OFFSET>,
1216 GetReplyProgress: GetReplyProgress::<Identity, Impl, OFFSET>,
1217 GetReplyData: GetReplyData::<Identity, Impl, OFFSET>,
1218 SetReplyFileName: SetReplyFileName::<Identity, Impl, OFFSET>,
1219 GetReplyFileName: GetReplyFileName::<Identity, Impl, OFFSET>,
1220 SetCredentials: SetCredentials::<Identity, Impl, OFFSET>,
1221 RemoveCredentials: RemoveCredentials::<Identity, Impl, OFFSET>,
1222 }
1223 }
1224 pub fn matches(iid: &windows::core::GUID) -> bool {
1225 iid == &<IBackgroundCopyJob2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob as ::windows::core::ComInterface>::IID
1226 }
1227 }
1228 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1229 #[cfg(feature = "Win32_Foundation")]
1230 pub trait IBackgroundCopyJob3_Impl: Sized + IBackgroundCopyJob2_Impl {
1231 fn ReplaceRemotePrefix(&self, oldprefix: &::windows::core::PCWSTR, newprefix: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1232 fn AddFileWithRanges(&self, remoteurl: &::windows::core::PCWSTR, localname: &::windows::core::PCWSTR, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::Result<()>;
1233 fn SetFileACLFlags(&self, flags: u32) -> ::windows::core::Result<()>;
1234 fn GetFileACLFlags(&self) -> ::windows::core::Result<u32>;
1235 }
1236 #[cfg(feature = "Win32_Foundation")]
1237 impl ::windows::core::RuntimeName for IBackgroundCopyJob3 {}
1238 #[cfg(feature = "Win32_Foundation")]
1239 impl IBackgroundCopyJob3_Vtbl {
1240 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob3_Impl, const OFFSET: isize>() -> IBackgroundCopyJob3_Vtbl {
1241 unsafe extern "system" fn ReplaceRemotePrefix<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, oldprefix: ::windows::core::PCWSTR, newprefix: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1242 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1243 let this = (*this).get_impl();
1244 this.ReplaceRemotePrefix(::core::mem::transmute(&oldprefix), ::core::mem::transmute(&newprefix)).into()
1245 }
1246 unsafe extern "system" fn AddFileWithRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, remoteurl: ::windows::core::PCWSTR, localname: ::windows::core::PCWSTR, rangecount: u32, ranges: *const BG_FILE_RANGE) -> ::windows::core::HRESULT {
1247 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1248 let this = (*this).get_impl();
1249 this.AddFileWithRanges(::core::mem::transmute(&remoteurl), ::core::mem::transmute(&localname), ::core::mem::transmute_copy(&rangecount), ::core::mem::transmute_copy(&ranges)).into()
1250 }
1251 unsafe extern "system" fn SetFileACLFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT {
1252 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1253 let this = (*this).get_impl();
1254 this.SetFileACLFlags(::core::mem::transmute_copy(&flags)).into()
1255 }
1256 unsafe extern "system" fn GetFileACLFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: *mut u32) -> ::windows::core::HRESULT {
1257 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1258 let this = (*this).get_impl();
1259 match this.GetFileACLFlags() {
1260 ::core::result::Result::Ok(ok__) => {
1261 ::core::ptr::write(flags, ::core::mem::transmute(ok__));
1262 ::windows::core::HRESULT(0)
1263 }
1264 ::core::result::Result::Err(err) => err.into(),
1265 }
1266 }
1267 Self {
1268 base__: IBackgroundCopyJob2_Vtbl::new::<Identity, Impl, OFFSET>(),
1269 ReplaceRemotePrefix: ReplaceRemotePrefix::<Identity, Impl, OFFSET>,
1270 AddFileWithRanges: AddFileWithRanges::<Identity, Impl, OFFSET>,
1271 SetFileACLFlags: SetFileACLFlags::<Identity, Impl, OFFSET>,
1272 GetFileACLFlags: GetFileACLFlags::<Identity, Impl, OFFSET>,
1273 }
1274 }
1275 pub fn matches(iid: &windows::core::GUID) -> bool {
1276 iid == &<IBackgroundCopyJob3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob2 as ::windows::core::ComInterface>::IID
1277 }
1278 }
1279 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1280 #[cfg(feature = "Win32_Foundation")]
1281 pub trait IBackgroundCopyJob4_Impl: Sized + IBackgroundCopyJob3_Impl {
1282 fn SetPeerCachingFlags(&self, flags: u32) -> ::windows::core::Result<()>;
1283 fn GetPeerCachingFlags(&self) -> ::windows::core::Result<u32>;
1284 fn GetOwnerIntegrityLevel(&self) -> ::windows::core::Result<u32>;
1285 fn GetOwnerElevationState(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
1286 fn SetMaximumDownloadTime(&self, timeout: u32) -> ::windows::core::Result<()>;
1287 fn GetMaximumDownloadTime(&self) -> ::windows::core::Result<u32>;
1288 }
1289 #[cfg(feature = "Win32_Foundation")]
1290 impl ::windows::core::RuntimeName for IBackgroundCopyJob4 {}
1291 #[cfg(feature = "Win32_Foundation")]
1292 impl IBackgroundCopyJob4_Vtbl {
1293 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>() -> IBackgroundCopyJob4_Vtbl {
1294 unsafe extern "system" fn SetPeerCachingFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT {
1295 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1296 let this = (*this).get_impl();
1297 this.SetPeerCachingFlags(::core::mem::transmute_copy(&flags)).into()
1298 }
1299 unsafe extern "system" fn GetPeerCachingFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows::core::HRESULT {
1300 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1301 let this = (*this).get_impl();
1302 match this.GetPeerCachingFlags() {
1303 ::core::result::Result::Ok(ok__) => {
1304 ::core::ptr::write(pflags, ::core::mem::transmute(ok__));
1305 ::windows::core::HRESULT(0)
1306 }
1307 ::core::result::Result::Err(err) => err.into(),
1308 }
1309 }
1310 unsafe extern "system" fn GetOwnerIntegrityLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plevel: *mut u32) -> ::windows::core::HRESULT {
1311 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1312 let this = (*this).get_impl();
1313 match this.GetOwnerIntegrityLevel() {
1314 ::core::result::Result::Ok(ok__) => {
1315 ::core::ptr::write(plevel, ::core::mem::transmute(ok__));
1316 ::windows::core::HRESULT(0)
1317 }
1318 ::core::result::Result::Err(err) => err.into(),
1319 }
1320 }
1321 unsafe extern "system" fn GetOwnerElevationState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pelevated: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
1322 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1323 let this = (*this).get_impl();
1324 match this.GetOwnerElevationState() {
1325 ::core::result::Result::Ok(ok__) => {
1326 ::core::ptr::write(pelevated, ::core::mem::transmute(ok__));
1327 ::windows::core::HRESULT(0)
1328 }
1329 ::core::result::Result::Err(err) => err.into(),
1330 }
1331 }
1332 unsafe extern "system" fn SetMaximumDownloadTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, timeout: u32) -> ::windows::core::HRESULT {
1333 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1334 let this = (*this).get_impl();
1335 this.SetMaximumDownloadTime(::core::mem::transmute_copy(&timeout)).into()
1336 }
1337 unsafe extern "system" fn GetMaximumDownloadTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob4_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimeout: *mut u32) -> ::windows::core::HRESULT {
1338 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1339 let this = (*this).get_impl();
1340 match this.GetMaximumDownloadTime() {
1341 ::core::result::Result::Ok(ok__) => {
1342 ::core::ptr::write(ptimeout, ::core::mem::transmute(ok__));
1343 ::windows::core::HRESULT(0)
1344 }
1345 ::core::result::Result::Err(err) => err.into(),
1346 }
1347 }
1348 Self {
1349 base__: IBackgroundCopyJob3_Vtbl::new::<Identity, Impl, OFFSET>(),
1350 SetPeerCachingFlags: SetPeerCachingFlags::<Identity, Impl, OFFSET>,
1351 GetPeerCachingFlags: GetPeerCachingFlags::<Identity, Impl, OFFSET>,
1352 GetOwnerIntegrityLevel: GetOwnerIntegrityLevel::<Identity, Impl, OFFSET>,
1353 GetOwnerElevationState: GetOwnerElevationState::<Identity, Impl, OFFSET>,
1354 SetMaximumDownloadTime: SetMaximumDownloadTime::<Identity, Impl, OFFSET>,
1355 GetMaximumDownloadTime: GetMaximumDownloadTime::<Identity, Impl, OFFSET>,
1356 }
1357 }
1358 pub fn matches(iid: &windows::core::GUID) -> bool {
1359 iid == &<IBackgroundCopyJob4 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob3 as ::windows::core::ComInterface>::IID
1360 }
1361 }
1362 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1363 #[cfg(feature = "Win32_Foundation")]
1364 pub trait IBackgroundCopyJob5_Impl: Sized + IBackgroundCopyJob4_Impl {
1365 fn SetProperty(&self, propertyid: BITS_JOB_PROPERTY_ID, propertyvalue: &BITS_JOB_PROPERTY_VALUE) -> ::windows::core::Result<()>;
1366 fn GetProperty(&self, propertyid: BITS_JOB_PROPERTY_ID) -> ::windows::core::Result<BITS_JOB_PROPERTY_VALUE>;
1367 }
1368 #[cfg(feature = "Win32_Foundation")]
1369 impl ::windows::core::RuntimeName for IBackgroundCopyJob5 {}
1370 #[cfg(feature = "Win32_Foundation")]
1371 impl IBackgroundCopyJob5_Vtbl {
1372 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob5_Impl, const OFFSET: isize>() -> IBackgroundCopyJob5_Vtbl {
1373 unsafe extern "system" fn SetProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertyid: BITS_JOB_PROPERTY_ID, propertyvalue: BITS_JOB_PROPERTY_VALUE) -> ::windows::core::HRESULT {
1374 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1375 let this = (*this).get_impl();
1376 this.SetProperty(::core::mem::transmute_copy(&propertyid), ::core::mem::transmute(&propertyvalue)).into()
1377 }
1378 unsafe extern "system" fn GetProperty<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJob5_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, propertyid: BITS_JOB_PROPERTY_ID, propertyvalue: *mut BITS_JOB_PROPERTY_VALUE) -> ::windows::core::HRESULT {
1379 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1380 let this = (*this).get_impl();
1381 match this.GetProperty(::core::mem::transmute_copy(&propertyid)) {
1382 ::core::result::Result::Ok(ok__) => {
1383 ::core::ptr::write(propertyvalue, ::core::mem::transmute(ok__));
1384 ::windows::core::HRESULT(0)
1385 }
1386 ::core::result::Result::Err(err) => err.into(),
1387 }
1388 }
1389 Self {
1390 base__: IBackgroundCopyJob4_Vtbl::new::<Identity, Impl, OFFSET>(),
1391 SetProperty: SetProperty::<Identity, Impl, OFFSET>,
1392 GetProperty: GetProperty::<Identity, Impl, OFFSET>,
1393 }
1394 }
1395 pub fn matches(iid: &windows::core::GUID) -> bool {
1396 iid == &<IBackgroundCopyJob5 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJob4 as ::windows::core::ComInterface>::IID
1397 }
1398 }
1399 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1400 pub trait IBackgroundCopyJobHttpOptions_Impl: Sized {
1401 fn SetClientCertificateByID(&self, storelocation: BG_CERT_STORE_LOCATION, storename: &::windows::core::PCWSTR, pcerthashblob: *const u8) -> ::windows::core::Result<()>;
1402 fn SetClientCertificateByName(&self, storelocation: BG_CERT_STORE_LOCATION, storename: &::windows::core::PCWSTR, subjectname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1403 fn RemoveClientCertificate(&self) -> ::windows::core::Result<()>;
1404 fn GetClientCertificate(&self, pstorelocation: *mut BG_CERT_STORE_LOCATION, pstorename: *mut ::windows::core::PWSTR, ppcerthashblob: *mut *mut u8, psubjectname: *mut ::windows::core::PWSTR) -> ::windows::core::Result<()>;
1405 fn SetCustomHeaders(&self, requestheaders: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1406 fn GetCustomHeaders(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1407 fn SetSecurityFlags(&self, flags: u32) -> ::windows::core::Result<()>;
1408 fn GetSecurityFlags(&self) -> ::windows::core::Result<u32>;
1409 }
1410 impl ::windows::core::RuntimeName for IBackgroundCopyJobHttpOptions {}
1411 impl IBackgroundCopyJobHttpOptions_Vtbl {
1412 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>() -> IBackgroundCopyJobHttpOptions_Vtbl {
1413 unsafe extern "system" fn SetClientCertificateByID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, storelocation: BG_CERT_STORE_LOCATION, storename: ::windows::core::PCWSTR, pcerthashblob: *const u8) -> ::windows::core::HRESULT {
1414 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1415 let this = (*this).get_impl();
1416 this.SetClientCertificateByID(::core::mem::transmute_copy(&storelocation), ::core::mem::transmute(&storename), ::core::mem::transmute_copy(&pcerthashblob)).into()
1417 }
1418 unsafe extern "system" fn SetClientCertificateByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, storelocation: BG_CERT_STORE_LOCATION, storename: ::windows::core::PCWSTR, subjectname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1419 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1420 let this = (*this).get_impl();
1421 this.SetClientCertificateByName(::core::mem::transmute_copy(&storelocation), ::core::mem::transmute(&storename), ::core::mem::transmute(&subjectname)).into()
1422 }
1423 unsafe extern "system" fn RemoveClientCertificate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1424 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1425 let this = (*this).get_impl();
1426 this.RemoveClientCertificate().into()
1427 }
1428 unsafe extern "system" fn GetClientCertificate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstorelocation: *mut BG_CERT_STORE_LOCATION, pstorename: *mut ::windows::core::PWSTR, ppcerthashblob: *mut *mut u8, psubjectname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1429 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1430 let this = (*this).get_impl();
1431 this.GetClientCertificate(::core::mem::transmute_copy(&pstorelocation), ::core::mem::transmute_copy(&pstorename), ::core::mem::transmute_copy(&ppcerthashblob), ::core::mem::transmute_copy(&psubjectname)).into()
1432 }
1433 unsafe extern "system" fn SetCustomHeaders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestheaders: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1434 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1435 let this = (*this).get_impl();
1436 this.SetCustomHeaders(::core::mem::transmute(&requestheaders)).into()
1437 }
1438 unsafe extern "system" fn GetCustomHeaders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prequestheaders: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1439 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1440 let this = (*this).get_impl();
1441 match this.GetCustomHeaders() {
1442 ::core::result::Result::Ok(ok__) => {
1443 ::core::ptr::write(prequestheaders, ::core::mem::transmute(ok__));
1444 ::windows::core::HRESULT(0)
1445 }
1446 ::core::result::Result::Err(err) => err.into(),
1447 }
1448 }
1449 unsafe extern "system" fn SetSecurityFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT {
1450 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1451 let this = (*this).get_impl();
1452 this.SetSecurityFlags(::core::mem::transmute_copy(&flags)).into()
1453 }
1454 unsafe extern "system" fn GetSecurityFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows::core::HRESULT {
1455 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1456 let this = (*this).get_impl();
1457 match this.GetSecurityFlags() {
1458 ::core::result::Result::Ok(ok__) => {
1459 ::core::ptr::write(pflags, ::core::mem::transmute(ok__));
1460 ::windows::core::HRESULT(0)
1461 }
1462 ::core::result::Result::Err(err) => err.into(),
1463 }
1464 }
1465 Self {
1466 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1467 SetClientCertificateByID: SetClientCertificateByID::<Identity, Impl, OFFSET>,
1468 SetClientCertificateByName: SetClientCertificateByName::<Identity, Impl, OFFSET>,
1469 RemoveClientCertificate: RemoveClientCertificate::<Identity, Impl, OFFSET>,
1470 GetClientCertificate: GetClientCertificate::<Identity, Impl, OFFSET>,
1471 SetCustomHeaders: SetCustomHeaders::<Identity, Impl, OFFSET>,
1472 GetCustomHeaders: GetCustomHeaders::<Identity, Impl, OFFSET>,
1473 SetSecurityFlags: SetSecurityFlags::<Identity, Impl, OFFSET>,
1474 GetSecurityFlags: GetSecurityFlags::<Identity, Impl, OFFSET>,
1475 }
1476 }
1477 pub fn matches(iid: &windows::core::GUID) -> bool {
1478 iid == &<IBackgroundCopyJobHttpOptions as ::windows::core::ComInterface>::IID
1479 }
1480 }
1481 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1482 pub trait IBackgroundCopyJobHttpOptions2_Impl: Sized + IBackgroundCopyJobHttpOptions_Impl {
1483 fn SetHttpMethod(&self, method: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1484 fn GetHttpMethod(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1485 }
1486 impl ::windows::core::RuntimeName for IBackgroundCopyJobHttpOptions2 {}
1487 impl IBackgroundCopyJobHttpOptions2_Vtbl {
1488 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions2_Impl, const OFFSET: isize>() -> IBackgroundCopyJobHttpOptions2_Vtbl {
1489 unsafe extern "system" fn SetHttpMethod<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, method: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1490 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1491 let this = (*this).get_impl();
1492 this.SetHttpMethod(::core::mem::transmute(&method)).into()
1493 }
1494 unsafe extern "system" fn GetHttpMethod<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, method: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1495 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1496 let this = (*this).get_impl();
1497 match this.GetHttpMethod() {
1498 ::core::result::Result::Ok(ok__) => {
1499 ::core::ptr::write(method, ::core::mem::transmute(ok__));
1500 ::windows::core::HRESULT(0)
1501 }
1502 ::core::result::Result::Err(err) => err.into(),
1503 }
1504 }
1505 Self {
1506 base__: IBackgroundCopyJobHttpOptions_Vtbl::new::<Identity, Impl, OFFSET>(),
1507 SetHttpMethod: SetHttpMethod::<Identity, Impl, OFFSET>,
1508 GetHttpMethod: GetHttpMethod::<Identity, Impl, OFFSET>,
1509 }
1510 }
1511 pub fn matches(iid: &windows::core::GUID) -> bool {
1512 iid == &<IBackgroundCopyJobHttpOptions2 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJobHttpOptions as ::windows::core::ComInterface>::IID
1513 }
1514 }
1515 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1516 pub trait IBackgroundCopyJobHttpOptions3_Impl: Sized + IBackgroundCopyJobHttpOptions2_Impl {
1517 fn SetServerCertificateValidationInterface(&self, certvalidationcallback: ::core::option::Option<&::windows::core::IUnknown>) -> ::windows::core::Result<()>;
1518 fn MakeCustomHeadersWriteOnly(&self) -> ::windows::core::Result<()>;
1519 }
1520 impl ::windows::core::RuntimeName for IBackgroundCopyJobHttpOptions3 {}
1521 impl IBackgroundCopyJobHttpOptions3_Vtbl {
1522 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions3_Impl, const OFFSET: isize>() -> IBackgroundCopyJobHttpOptions3_Vtbl {
1523 unsafe extern "system" fn SetServerCertificateValidationInterface<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, certvalidationcallback: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1524 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1525 let this = (*this).get_impl();
1526 this.SetServerCertificateValidationInterface(::windows::core::from_raw_borrowed(&certvalidationcallback)).into()
1527 }
1528 unsafe extern "system" fn MakeCustomHeadersWriteOnly<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyJobHttpOptions3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1529 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1530 let this = (*this).get_impl();
1531 this.MakeCustomHeadersWriteOnly().into()
1532 }
1533 Self {
1534 base__: IBackgroundCopyJobHttpOptions2_Vtbl::new::<Identity, Impl, OFFSET>(),
1535 SetServerCertificateValidationInterface: SetServerCertificateValidationInterface::<Identity, Impl, OFFSET>,
1536 MakeCustomHeadersWriteOnly: MakeCustomHeadersWriteOnly::<Identity, Impl, OFFSET>,
1537 }
1538 }
1539 pub fn matches(iid: &windows::core::GUID) -> bool {
1540 iid == &<IBackgroundCopyJobHttpOptions3 as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJobHttpOptions as ::windows::core::ComInterface>::IID || iid == &<IBackgroundCopyJobHttpOptions2 as ::windows::core::ComInterface>::IID
1541 }
1542 }
1543 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1544 pub trait IBackgroundCopyManager_Impl: Sized {
1545 fn CreateJob(&self, displayname: &::windows::core::PCWSTR, r#type: BG_JOB_TYPE, pjobid: *mut ::windows::core::GUID, ppjob: *mut ::core::option::Option<IBackgroundCopyJob>) -> ::windows::core::Result<()>;
1546 fn GetJob(&self, jobid: *const ::windows::core::GUID) -> ::windows::core::Result<IBackgroundCopyJob>;
1547 fn EnumJobs(&self, dwflags: u32) -> ::windows::core::Result<IEnumBackgroundCopyJobs>;
1548 fn GetErrorDescription(&self, hresult: ::windows::core::HRESULT, languageid: u32) -> ::windows::core::Result<::windows::core::PWSTR>;
1549 }
1550 impl ::windows::core::RuntimeName for IBackgroundCopyManager {}
1551 impl IBackgroundCopyManager_Vtbl {
1552 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyManager_Impl, const OFFSET: isize>() -> IBackgroundCopyManager_Vtbl {
1553 unsafe extern "system" fn CreateJob<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, displayname: ::windows::core::PCWSTR, r#type: BG_JOB_TYPE, pjobid: *mut ::windows::core::GUID, ppjob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1554 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1555 let this = (*this).get_impl();
1556 this.CreateJob(::core::mem::transmute(&displayname), ::core::mem::transmute_copy(&r#type), ::core::mem::transmute_copy(&pjobid), ::core::mem::transmute_copy(&ppjob)).into()
1557 }
1558 unsafe extern "system" fn GetJob<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, jobid: *const ::windows::core::GUID, ppjob: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1559 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1560 let this = (*this).get_impl();
1561 match this.GetJob(::core::mem::transmute_copy(&jobid)) {
1562 ::core::result::Result::Ok(ok__) => {
1563 ::core::ptr::write(ppjob, ::core::mem::transmute(ok__));
1564 ::windows::core::HRESULT(0)
1565 }
1566 ::core::result::Result::Err(err) => err.into(),
1567 }
1568 }
1569 unsafe extern "system" fn EnumJobs<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1570 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1571 let this = (*this).get_impl();
1572 match this.EnumJobs(::core::mem::transmute_copy(&dwflags)) {
1573 ::core::result::Result::Ok(ok__) => {
1574 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
1575 ::windows::core::HRESULT(0)
1576 }
1577 ::core::result::Result::Err(err) => err.into(),
1578 }
1579 }
1580 unsafe extern "system" fn GetErrorDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hresult: ::windows::core::HRESULT, languageid: u32, perrordescription: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1581 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1582 let this = (*this).get_impl();
1583 match this.GetErrorDescription(::core::mem::transmute_copy(&hresult), ::core::mem::transmute_copy(&languageid)) {
1584 ::core::result::Result::Ok(ok__) => {
1585 ::core::ptr::write(perrordescription, ::core::mem::transmute(ok__));
1586 ::windows::core::HRESULT(0)
1587 }
1588 ::core::result::Result::Err(err) => err.into(),
1589 }
1590 }
1591 Self {
1592 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1593 CreateJob: CreateJob::<Identity, Impl, OFFSET>,
1594 GetJob: GetJob::<Identity, Impl, OFFSET>,
1595 EnumJobs: EnumJobs::<Identity, Impl, OFFSET>,
1596 GetErrorDescription: GetErrorDescription::<Identity, Impl, OFFSET>,
1597 }
1598 }
1599 pub fn matches(iid: &windows::core::GUID) -> bool {
1600 iid == &<IBackgroundCopyManager as ::windows::core::ComInterface>::IID
1601 }
1602 }
1603 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1604 pub trait IBackgroundCopyQMgr_Impl: Sized {
1605 fn CreateGroup(&self, guidgroupid: &::windows::core::GUID) -> ::windows::core::Result<IBackgroundCopyGroup>;
1606 fn GetGroup(&self, groupid: &::windows::core::GUID) -> ::windows::core::Result<IBackgroundCopyGroup>;
1607 fn EnumGroups(&self, dwflags: u32) -> ::windows::core::Result<IEnumBackgroundCopyGroups>;
1608 }
1609 impl ::windows::core::RuntimeName for IBackgroundCopyQMgr {}
1610 impl IBackgroundCopyQMgr_Vtbl {
1611 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyQMgr_Impl, const OFFSET: isize>() -> IBackgroundCopyQMgr_Vtbl {
1612 unsafe extern "system" fn CreateGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyQMgr_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidgroupid: ::windows::core::GUID, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1613 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1614 let this = (*this).get_impl();
1615 match this.CreateGroup(::core::mem::transmute(&guidgroupid)) {
1616 ::core::result::Result::Ok(ok__) => {
1617 ::core::ptr::write(ppgroup, ::core::mem::transmute(ok__));
1618 ::windows::core::HRESULT(0)
1619 }
1620 ::core::result::Result::Err(err) => err.into(),
1621 }
1622 }
1623 unsafe extern "system" fn GetGroup<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyQMgr_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, groupid: ::windows::core::GUID, ppgroup: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1624 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1625 let this = (*this).get_impl();
1626 match this.GetGroup(::core::mem::transmute(&groupid)) {
1627 ::core::result::Result::Ok(ok__) => {
1628 ::core::ptr::write(ppgroup, ::core::mem::transmute(ok__));
1629 ::windows::core::HRESULT(0)
1630 }
1631 ::core::result::Result::Err(err) => err.into(),
1632 }
1633 }
1634 unsafe extern "system" fn EnumGroups<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyQMgr_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppenumgroups: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1635 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1636 let this = (*this).get_impl();
1637 match this.EnumGroups(::core::mem::transmute_copy(&dwflags)) {
1638 ::core::result::Result::Ok(ok__) => {
1639 ::core::ptr::write(ppenumgroups, ::core::mem::transmute(ok__));
1640 ::windows::core::HRESULT(0)
1641 }
1642 ::core::result::Result::Err(err) => err.into(),
1643 }
1644 }
1645 Self {
1646 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1647 CreateGroup: CreateGroup::<Identity, Impl, OFFSET>,
1648 GetGroup: GetGroup::<Identity, Impl, OFFSET>,
1649 EnumGroups: EnumGroups::<Identity, Impl, OFFSET>,
1650 }
1651 }
1652 pub fn matches(iid: &windows::core::GUID) -> bool {
1653 iid == &<IBackgroundCopyQMgr as ::windows::core::ComInterface>::IID
1654 }
1655 }
1656 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1657 pub trait IBackgroundCopyServerCertificateValidationCallback_Impl: Sized {
1658 fn ValidateServerCertificate(&self, job: ::core::option::Option<&IBackgroundCopyJob>, file: ::core::option::Option<&IBackgroundCopyFile>, certlength: u32, certdata: *const u8, certencodingtype: u32, certstorelength: u32, certstoredata: *const u8) -> ::windows::core::Result<()>;
1659 }
1660 impl ::windows::core::RuntimeName for IBackgroundCopyServerCertificateValidationCallback {}
1661 impl IBackgroundCopyServerCertificateValidationCallback_Vtbl {
1662 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyServerCertificateValidationCallback_Impl, const OFFSET: isize>() -> IBackgroundCopyServerCertificateValidationCallback_Vtbl {
1663 unsafe extern "system" fn ValidateServerCertificate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBackgroundCopyServerCertificateValidationCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, job: *mut ::core::ffi::c_void, file: *mut ::core::ffi::c_void, certlength: u32, certdata: *const u8, certencodingtype: u32, certstorelength: u32, certstoredata: *const u8) -> ::windows::core::HRESULT {
1664 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1665 let this = (*this).get_impl();
1666 this.ValidateServerCertificate(::windows::core::from_raw_borrowed(&job), ::windows::core::from_raw_borrowed(&file), ::core::mem::transmute_copy(&certlength), ::core::mem::transmute_copy(&certdata), ::core::mem::transmute_copy(&certencodingtype), ::core::mem::transmute_copy(&certstorelength), ::core::mem::transmute_copy(&certstoredata)).into()
1667 }
1668 Self {
1669 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1670 ValidateServerCertificate: ValidateServerCertificate::<Identity, Impl, OFFSET>,
1671 }
1672 }
1673 pub fn matches(iid: &windows::core::GUID) -> bool {
1674 iid == &<IBackgroundCopyServerCertificateValidationCallback as ::windows::core::ComInterface>::IID
1675 }
1676 }
1677 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1678 #[cfg(feature = "Win32_Foundation")]
1679 pub trait IBitsPeer_Impl: Sized {
1680 fn GetPeerName(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1681 fn IsAuthenticated(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
1682 fn IsAvailable(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
1683 }
1684 #[cfg(feature = "Win32_Foundation")]
1685 impl ::windows::core::RuntimeName for IBitsPeer {}
1686 #[cfg(feature = "Win32_Foundation")]
1687 impl IBitsPeer_Vtbl {
1688 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeer_Impl, const OFFSET: isize>() -> IBitsPeer_Vtbl {
1689 unsafe extern "system" fn GetPeerName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pname: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1690 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1691 let this = (*this).get_impl();
1692 match this.GetPeerName() {
1693 ::core::result::Result::Ok(ok__) => {
1694 ::core::ptr::write(pname, ::core::mem::transmute(ok__));
1695 ::windows::core::HRESULT(0)
1696 }
1697 ::core::result::Result::Err(err) => err.into(),
1698 }
1699 }
1700 unsafe extern "system" fn IsAuthenticated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pauth: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
1701 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1702 let this = (*this).get_impl();
1703 match this.IsAuthenticated() {
1704 ::core::result::Result::Ok(ok__) => {
1705 ::core::ptr::write(pauth, ::core::mem::transmute(ok__));
1706 ::windows::core::HRESULT(0)
1707 }
1708 ::core::result::Result::Err(err) => err.into(),
1709 }
1710 }
1711 unsafe extern "system" fn IsAvailable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ponline: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
1712 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1713 let this = (*this).get_impl();
1714 match this.IsAvailable() {
1715 ::core::result::Result::Ok(ok__) => {
1716 ::core::ptr::write(ponline, ::core::mem::transmute(ok__));
1717 ::windows::core::HRESULT(0)
1718 }
1719 ::core::result::Result::Err(err) => err.into(),
1720 }
1721 }
1722 Self {
1723 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1724 GetPeerName: GetPeerName::<Identity, Impl, OFFSET>,
1725 IsAuthenticated: IsAuthenticated::<Identity, Impl, OFFSET>,
1726 IsAvailable: IsAvailable::<Identity, Impl, OFFSET>,
1727 }
1728 }
1729 pub fn matches(iid: &windows::core::GUID) -> bool {
1730 iid == &<IBitsPeer as ::windows::core::ComInterface>::IID
1731 }
1732 }
1733 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1734 pub trait IBitsPeerCacheAdministration_Impl: Sized {
1735 fn GetMaximumCacheSize(&self) -> ::windows::core::Result<u32>;
1736 fn SetMaximumCacheSize(&self, bytes: u32) -> ::windows::core::Result<()>;
1737 fn GetMaximumContentAge(&self) -> ::windows::core::Result<u32>;
1738 fn SetMaximumContentAge(&self, seconds: u32) -> ::windows::core::Result<()>;
1739 fn GetConfigurationFlags(&self) -> ::windows::core::Result<u32>;
1740 fn SetConfigurationFlags(&self, flags: u32) -> ::windows::core::Result<()>;
1741 fn EnumRecords(&self) -> ::windows::core::Result<IEnumBitsPeerCacheRecords>;
1742 fn GetRecord(&self, id: *const ::windows::core::GUID) -> ::windows::core::Result<IBitsPeerCacheRecord>;
1743 fn ClearRecords(&self) -> ::windows::core::Result<()>;
1744 fn DeleteRecord(&self, id: *const ::windows::core::GUID) -> ::windows::core::Result<()>;
1745 fn DeleteUrl(&self, url: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
1746 fn EnumPeers(&self) -> ::windows::core::Result<IEnumBitsPeers>;
1747 fn ClearPeers(&self) -> ::windows::core::Result<()>;
1748 fn DiscoverPeers(&self) -> ::windows::core::Result<()>;
1749 }
1750 impl ::windows::core::RuntimeName for IBitsPeerCacheAdministration {}
1751 impl IBitsPeerCacheAdministration_Vtbl {
1752 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>() -> IBitsPeerCacheAdministration_Vtbl {
1753 unsafe extern "system" fn GetMaximumCacheSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbytes: *mut u32) -> ::windows::core::HRESULT {
1754 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1755 let this = (*this).get_impl();
1756 match this.GetMaximumCacheSize() {
1757 ::core::result::Result::Ok(ok__) => {
1758 ::core::ptr::write(pbytes, ::core::mem::transmute(ok__));
1759 ::windows::core::HRESULT(0)
1760 }
1761 ::core::result::Result::Err(err) => err.into(),
1762 }
1763 }
1764 unsafe extern "system" fn SetMaximumCacheSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bytes: u32) -> ::windows::core::HRESULT {
1765 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1766 let this = (*this).get_impl();
1767 this.SetMaximumCacheSize(::core::mem::transmute_copy(&bytes)).into()
1768 }
1769 unsafe extern "system" fn GetMaximumContentAge<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pseconds: *mut u32) -> ::windows::core::HRESULT {
1770 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1771 let this = (*this).get_impl();
1772 match this.GetMaximumContentAge() {
1773 ::core::result::Result::Ok(ok__) => {
1774 ::core::ptr::write(pseconds, ::core::mem::transmute(ok__));
1775 ::windows::core::HRESULT(0)
1776 }
1777 ::core::result::Result::Err(err) => err.into(),
1778 }
1779 }
1780 unsafe extern "system" fn SetMaximumContentAge<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seconds: u32) -> ::windows::core::HRESULT {
1781 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1782 let this = (*this).get_impl();
1783 this.SetMaximumContentAge(::core::mem::transmute_copy(&seconds)).into()
1784 }
1785 unsafe extern "system" fn GetConfigurationFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows::core::HRESULT {
1786 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1787 let this = (*this).get_impl();
1788 match this.GetConfigurationFlags() {
1789 ::core::result::Result::Ok(ok__) => {
1790 ::core::ptr::write(pflags, ::core::mem::transmute(ok__));
1791 ::windows::core::HRESULT(0)
1792 }
1793 ::core::result::Result::Err(err) => err.into(),
1794 }
1795 }
1796 unsafe extern "system" fn SetConfigurationFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows::core::HRESULT {
1797 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1798 let this = (*this).get_impl();
1799 this.SetConfigurationFlags(::core::mem::transmute_copy(&flags)).into()
1800 }
1801 unsafe extern "system" fn EnumRecords<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1802 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1803 let this = (*this).get_impl();
1804 match this.EnumRecords() {
1805 ::core::result::Result::Ok(ok__) => {
1806 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
1807 ::windows::core::HRESULT(0)
1808 }
1809 ::core::result::Result::Err(err) => err.into(),
1810 }
1811 }
1812 unsafe extern "system" fn GetRecord<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const ::windows::core::GUID, pprecord: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1813 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1814 let this = (*this).get_impl();
1815 match this.GetRecord(::core::mem::transmute_copy(&id)) {
1816 ::core::result::Result::Ok(ok__) => {
1817 ::core::ptr::write(pprecord, ::core::mem::transmute(ok__));
1818 ::windows::core::HRESULT(0)
1819 }
1820 ::core::result::Result::Err(err) => err.into(),
1821 }
1822 }
1823 unsafe extern "system" fn ClearRecords<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1824 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1825 let this = (*this).get_impl();
1826 this.ClearRecords().into()
1827 }
1828 unsafe extern "system" fn DeleteRecord<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *const ::windows::core::GUID) -> ::windows::core::HRESULT {
1829 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1830 let this = (*this).get_impl();
1831 this.DeleteRecord(::core::mem::transmute_copy(&id)).into()
1832 }
1833 unsafe extern "system" fn DeleteUrl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, url: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
1834 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1835 let this = (*this).get_impl();
1836 this.DeleteUrl(::core::mem::transmute(&url)).into()
1837 }
1838 unsafe extern "system" fn EnumPeers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1839 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1840 let this = (*this).get_impl();
1841 match this.EnumPeers() {
1842 ::core::result::Result::Ok(ok__) => {
1843 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
1844 ::windows::core::HRESULT(0)
1845 }
1846 ::core::result::Result::Err(err) => err.into(),
1847 }
1848 }
1849 unsafe extern "system" fn ClearPeers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1850 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1851 let this = (*this).get_impl();
1852 this.ClearPeers().into()
1853 }
1854 unsafe extern "system" fn DiscoverPeers<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheAdministration_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1855 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1856 let this = (*this).get_impl();
1857 this.DiscoverPeers().into()
1858 }
1859 Self {
1860 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1861 GetMaximumCacheSize: GetMaximumCacheSize::<Identity, Impl, OFFSET>,
1862 SetMaximumCacheSize: SetMaximumCacheSize::<Identity, Impl, OFFSET>,
1863 GetMaximumContentAge: GetMaximumContentAge::<Identity, Impl, OFFSET>,
1864 SetMaximumContentAge: SetMaximumContentAge::<Identity, Impl, OFFSET>,
1865 GetConfigurationFlags: GetConfigurationFlags::<Identity, Impl, OFFSET>,
1866 SetConfigurationFlags: SetConfigurationFlags::<Identity, Impl, OFFSET>,
1867 EnumRecords: EnumRecords::<Identity, Impl, OFFSET>,
1868 GetRecord: GetRecord::<Identity, Impl, OFFSET>,
1869 ClearRecords: ClearRecords::<Identity, Impl, OFFSET>,
1870 DeleteRecord: DeleteRecord::<Identity, Impl, OFFSET>,
1871 DeleteUrl: DeleteUrl::<Identity, Impl, OFFSET>,
1872 EnumPeers: EnumPeers::<Identity, Impl, OFFSET>,
1873 ClearPeers: ClearPeers::<Identity, Impl, OFFSET>,
1874 DiscoverPeers: DiscoverPeers::<Identity, Impl, OFFSET>,
1875 }
1876 }
1877 pub fn matches(iid: &windows::core::GUID) -> bool {
1878 iid == &<IBitsPeerCacheAdministration as ::windows::core::ComInterface>::IID
1879 }
1880 }
1881 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1882 #[cfg(feature = "Win32_Foundation")]
1883 pub trait IBitsPeerCacheRecord_Impl: Sized {
1884 fn GetId(&self) -> ::windows::core::Result<::windows::core::GUID>;
1885 fn GetOriginUrl(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1886 fn GetFileSize(&self) -> ::windows::core::Result<u64>;
1887 fn GetFileModificationTime(&self) -> ::windows::core::Result<super::super::Foundation::FILETIME>;
1888 fn GetLastAccessTime(&self) -> ::windows::core::Result<super::super::Foundation::FILETIME>;
1889 fn IsFileValidated(&self) -> ::windows::core::Result<()>;
1890 fn GetFileRanges(&self, prangecount: *mut u32, ppranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::Result<()>;
1891 }
1892 #[cfg(feature = "Win32_Foundation")]
1893 impl ::windows::core::RuntimeName for IBitsPeerCacheRecord {}
1894 #[cfg(feature = "Win32_Foundation")]
1895 impl IBitsPeerCacheRecord_Vtbl {
1896 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>() -> IBitsPeerCacheRecord_Vtbl {
1897 unsafe extern "system" fn GetId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
1898 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1899 let this = (*this).get_impl();
1900 match this.GetId() {
1901 ::core::result::Result::Ok(ok__) => {
1902 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
1903 ::windows::core::HRESULT(0)
1904 }
1905 ::core::result::Result::Err(err) => err.into(),
1906 }
1907 }
1908 unsafe extern "system" fn GetOriginUrl<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
1909 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1910 let this = (*this).get_impl();
1911 match this.GetOriginUrl() {
1912 ::core::result::Result::Ok(ok__) => {
1913 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
1914 ::windows::core::HRESULT(0)
1915 }
1916 ::core::result::Result::Err(err) => err.into(),
1917 }
1918 }
1919 unsafe extern "system" fn GetFileSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut u64) -> ::windows::core::HRESULT {
1920 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1921 let this = (*this).get_impl();
1922 match this.GetFileSize() {
1923 ::core::result::Result::Ok(ok__) => {
1924 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
1925 ::windows::core::HRESULT(0)
1926 }
1927 ::core::result::Result::Err(err) => err.into(),
1928 }
1929 }
1930 unsafe extern "system" fn GetFileModificationTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::FILETIME) -> ::windows::core::HRESULT {
1931 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1932 let this = (*this).get_impl();
1933 match this.GetFileModificationTime() {
1934 ::core::result::Result::Ok(ok__) => {
1935 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
1936 ::windows::core::HRESULT(0)
1937 }
1938 ::core::result::Result::Err(err) => err.into(),
1939 }
1940 }
1941 unsafe extern "system" fn GetLastAccessTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::FILETIME) -> ::windows::core::HRESULT {
1942 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1943 let this = (*this).get_impl();
1944 match this.GetLastAccessTime() {
1945 ::core::result::Result::Ok(ok__) => {
1946 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
1947 ::windows::core::HRESULT(0)
1948 }
1949 ::core::result::Result::Err(err) => err.into(),
1950 }
1951 }
1952 unsafe extern "system" fn IsFileValidated<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1953 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1954 let this = (*this).get_impl();
1955 this.IsFileValidated().into()
1956 }
1957 unsafe extern "system" fn GetFileRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsPeerCacheRecord_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prangecount: *mut u32, ppranges: *mut *mut BG_FILE_RANGE) -> ::windows::core::HRESULT {
1958 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1959 let this = (*this).get_impl();
1960 this.GetFileRanges(::core::mem::transmute_copy(&prangecount), ::core::mem::transmute_copy(&ppranges)).into()
1961 }
1962 Self {
1963 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1964 GetId: GetId::<Identity, Impl, OFFSET>,
1965 GetOriginUrl: GetOriginUrl::<Identity, Impl, OFFSET>,
1966 GetFileSize: GetFileSize::<Identity, Impl, OFFSET>,
1967 GetFileModificationTime: GetFileModificationTime::<Identity, Impl, OFFSET>,
1968 GetLastAccessTime: GetLastAccessTime::<Identity, Impl, OFFSET>,
1969 IsFileValidated: IsFileValidated::<Identity, Impl, OFFSET>,
1970 GetFileRanges: GetFileRanges::<Identity, Impl, OFFSET>,
1971 }
1972 }
1973 pub fn matches(iid: &windows::core::GUID) -> bool {
1974 iid == &<IBitsPeerCacheRecord as ::windows::core::ComInterface>::IID
1975 }
1976 }
1977 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
1978 pub trait IBitsTokenOptions_Impl: Sized {
1979 fn SetHelperTokenFlags(&self, usageflags: BG_TOKEN) -> ::windows::core::Result<()>;
1980 fn GetHelperTokenFlags(&self) -> ::windows::core::Result<BG_TOKEN>;
1981 fn SetHelperToken(&self) -> ::windows::core::Result<()>;
1982 fn ClearHelperToken(&self) -> ::windows::core::Result<()>;
1983 fn GetHelperTokenSid(&self) -> ::windows::core::Result<::windows::core::PWSTR>;
1984 }
1985 impl ::windows::core::RuntimeName for IBitsTokenOptions {}
1986 impl IBitsTokenOptions_Vtbl {
1987 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>() -> IBitsTokenOptions_Vtbl {
1988 unsafe extern "system" fn SetHelperTokenFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usageflags: BG_TOKEN) -> ::windows::core::HRESULT {
1989 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1990 let this = (*this).get_impl();
1991 this.SetHelperTokenFlags(::core::mem::transmute_copy(&usageflags)).into()
1992 }
1993 unsafe extern "system" fn GetHelperTokenFlags<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut BG_TOKEN) -> ::windows::core::HRESULT {
1994 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1995 let this = (*this).get_impl();
1996 match this.GetHelperTokenFlags() {
1997 ::core::result::Result::Ok(ok__) => {
1998 ::core::ptr::write(pflags, ::core::mem::transmute(ok__));
1999 ::windows::core::HRESULT(0)
2000 }
2001 ::core::result::Result::Err(err) => err.into(),
2002 }
2003 }
2004 unsafe extern "system" fn SetHelperToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2005 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2006 let this = (*this).get_impl();
2007 this.SetHelperToken().into()
2008 }
2009 unsafe extern "system" fn ClearHelperToken<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2010 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2011 let this = (*this).get_impl();
2012 this.ClearHelperToken().into()
2013 }
2014 unsafe extern "system" fn GetHelperTokenSid<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBitsTokenOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psid: *mut ::windows::core::PWSTR) -> ::windows::core::HRESULT {
2015 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2016 let this = (*this).get_impl();
2017 match this.GetHelperTokenSid() {
2018 ::core::result::Result::Ok(ok__) => {
2019 ::core::ptr::write(psid, ::core::mem::transmute(ok__));
2020 ::windows::core::HRESULT(0)
2021 }
2022 ::core::result::Result::Err(err) => err.into(),
2023 }
2024 }
2025 Self {
2026 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2027 SetHelperTokenFlags: SetHelperTokenFlags::<Identity, Impl, OFFSET>,
2028 GetHelperTokenFlags: GetHelperTokenFlags::<Identity, Impl, OFFSET>,
2029 SetHelperToken: SetHelperToken::<Identity, Impl, OFFSET>,
2030 ClearHelperToken: ClearHelperToken::<Identity, Impl, OFFSET>,
2031 GetHelperTokenSid: GetHelperTokenSid::<Identity, Impl, OFFSET>,
2032 }
2033 }
2034 pub fn matches(iid: &windows::core::GUID) -> bool {
2035 iid == &<IBitsTokenOptions as ::windows::core::ComInterface>::IID
2036 }
2037 }
2038 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2039 pub trait IEnumBackgroundCopyFiles_Impl: Sized {
2040 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IBackgroundCopyFile>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2041 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2042 fn Reset(&self) -> ::windows::core::Result<()>;
2043 fn Clone(&self) -> ::windows::core::Result<IEnumBackgroundCopyFiles>;
2044 fn GetCount(&self) -> ::windows::core::Result<u32>;
2045 }
2046 impl ::windows::core::RuntimeName for IEnumBackgroundCopyFiles {}
2047 impl IEnumBackgroundCopyFiles_Vtbl {
2048 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>() -> IEnumBackgroundCopyFiles_Vtbl {
2049 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2050 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2051 let this = (*this).get_impl();
2052 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2053 }
2054 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2055 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2056 let this = (*this).get_impl();
2057 this.Skip(::core::mem::transmute_copy(&celt)).into()
2058 }
2059 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2060 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2061 let this = (*this).get_impl();
2062 this.Reset().into()
2063 }
2064 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2065 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2066 let this = (*this).get_impl();
2067 match this.Clone() {
2068 ::core::result::Result::Ok(ok__) => {
2069 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2070 ::windows::core::HRESULT(0)
2071 }
2072 ::core::result::Result::Err(err) => err.into(),
2073 }
2074 }
2075 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyFiles_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2076 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2077 let this = (*this).get_impl();
2078 match this.GetCount() {
2079 ::core::result::Result::Ok(ok__) => {
2080 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2081 ::windows::core::HRESULT(0)
2082 }
2083 ::core::result::Result::Err(err) => err.into(),
2084 }
2085 }
2086 Self {
2087 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2088 Next: Next::<Identity, Impl, OFFSET>,
2089 Skip: Skip::<Identity, Impl, OFFSET>,
2090 Reset: Reset::<Identity, Impl, OFFSET>,
2091 Clone: Clone::<Identity, Impl, OFFSET>,
2092 GetCount: GetCount::<Identity, Impl, OFFSET>,
2093 }
2094 }
2095 pub fn matches(iid: &windows::core::GUID) -> bool {
2096 iid == &<IEnumBackgroundCopyFiles as ::windows::core::ComInterface>::IID
2097 }
2098 }
2099 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2100 pub trait IEnumBackgroundCopyGroups_Impl: Sized {
2101 fn Next(&self, celt: u32, rgelt: *mut ::windows::core::GUID, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2102 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2103 fn Reset(&self) -> ::windows::core::Result<()>;
2104 fn Clone(&self) -> ::windows::core::Result<IEnumBackgroundCopyGroups>;
2105 fn GetCount(&self) -> ::windows::core::Result<u32>;
2106 }
2107 impl ::windows::core::RuntimeName for IEnumBackgroundCopyGroups {}
2108 impl IEnumBackgroundCopyGroups_Vtbl {
2109 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>() -> IEnumBackgroundCopyGroups_Vtbl {
2110 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut ::windows::core::GUID, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2111 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2112 let this = (*this).get_impl();
2113 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2114 }
2115 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2116 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2117 let this = (*this).get_impl();
2118 this.Skip(::core::mem::transmute_copy(&celt)).into()
2119 }
2120 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2121 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2122 let this = (*this).get_impl();
2123 this.Reset().into()
2124 }
2125 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2126 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2127 let this = (*this).get_impl();
2128 match this.Clone() {
2129 ::core::result::Result::Ok(ok__) => {
2130 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2131 ::windows::core::HRESULT(0)
2132 }
2133 ::core::result::Result::Err(err) => err.into(),
2134 }
2135 }
2136 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyGroups_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2137 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2138 let this = (*this).get_impl();
2139 match this.GetCount() {
2140 ::core::result::Result::Ok(ok__) => {
2141 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2142 ::windows::core::HRESULT(0)
2143 }
2144 ::core::result::Result::Err(err) => err.into(),
2145 }
2146 }
2147 Self {
2148 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2149 Next: Next::<Identity, Impl, OFFSET>,
2150 Skip: Skip::<Identity, Impl, OFFSET>,
2151 Reset: Reset::<Identity, Impl, OFFSET>,
2152 Clone: Clone::<Identity, Impl, OFFSET>,
2153 GetCount: GetCount::<Identity, Impl, OFFSET>,
2154 }
2155 }
2156 pub fn matches(iid: &windows::core::GUID) -> bool {
2157 iid == &<IEnumBackgroundCopyGroups as ::windows::core::ComInterface>::IID
2158 }
2159 }
2160 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2161 pub trait IEnumBackgroundCopyJobs_Impl: Sized {
2162 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IBackgroundCopyJob>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2163 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2164 fn Reset(&self) -> ::windows::core::Result<()>;
2165 fn Clone(&self) -> ::windows::core::Result<IEnumBackgroundCopyJobs>;
2166 fn GetCount(&self) -> ::windows::core::Result<u32>;
2167 }
2168 impl ::windows::core::RuntimeName for IEnumBackgroundCopyJobs {}
2169 impl IEnumBackgroundCopyJobs_Vtbl {
2170 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>() -> IEnumBackgroundCopyJobs_Vtbl {
2171 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2172 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2173 let this = (*this).get_impl();
2174 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2175 }
2176 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2177 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2178 let this = (*this).get_impl();
2179 this.Skip(::core::mem::transmute_copy(&celt)).into()
2180 }
2181 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2182 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2183 let this = (*this).get_impl();
2184 this.Reset().into()
2185 }
2186 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2187 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2188 let this = (*this).get_impl();
2189 match this.Clone() {
2190 ::core::result::Result::Ok(ok__) => {
2191 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2192 ::windows::core::HRESULT(0)
2193 }
2194 ::core::result::Result::Err(err) => err.into(),
2195 }
2196 }
2197 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2198 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2199 let this = (*this).get_impl();
2200 match this.GetCount() {
2201 ::core::result::Result::Ok(ok__) => {
2202 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2203 ::windows::core::HRESULT(0)
2204 }
2205 ::core::result::Result::Err(err) => err.into(),
2206 }
2207 }
2208 Self {
2209 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2210 Next: Next::<Identity, Impl, OFFSET>,
2211 Skip: Skip::<Identity, Impl, OFFSET>,
2212 Reset: Reset::<Identity, Impl, OFFSET>,
2213 Clone: Clone::<Identity, Impl, OFFSET>,
2214 GetCount: GetCount::<Identity, Impl, OFFSET>,
2215 }
2216 }
2217 pub fn matches(iid: &windows::core::GUID) -> bool {
2218 iid == &<IEnumBackgroundCopyJobs as ::windows::core::ComInterface>::IID
2219 }
2220 }
2221 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2222 pub trait IEnumBackgroundCopyJobs1_Impl: Sized {
2223 fn Next(&self, celt: u32, rgelt: *mut ::windows::core::GUID, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2224 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2225 fn Reset(&self) -> ::windows::core::Result<()>;
2226 fn Clone(&self) -> ::windows::core::Result<IEnumBackgroundCopyJobs1>;
2227 fn GetCount(&self) -> ::windows::core::Result<u32>;
2228 }
2229 impl ::windows::core::RuntimeName for IEnumBackgroundCopyJobs1 {}
2230 impl IEnumBackgroundCopyJobs1_Vtbl {
2231 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>() -> IEnumBackgroundCopyJobs1_Vtbl {
2232 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut ::windows::core::GUID, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2233 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2234 let this = (*this).get_impl();
2235 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2236 }
2237 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2238 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2239 let this = (*this).get_impl();
2240 this.Skip(::core::mem::transmute_copy(&celt)).into()
2241 }
2242 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2243 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2244 let this = (*this).get_impl();
2245 this.Reset().into()
2246 }
2247 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2248 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2249 let this = (*this).get_impl();
2250 match this.Clone() {
2251 ::core::result::Result::Ok(ok__) => {
2252 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2253 ::windows::core::HRESULT(0)
2254 }
2255 ::core::result::Result::Err(err) => err.into(),
2256 }
2257 }
2258 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBackgroundCopyJobs1_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2259 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2260 let this = (*this).get_impl();
2261 match this.GetCount() {
2262 ::core::result::Result::Ok(ok__) => {
2263 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2264 ::windows::core::HRESULT(0)
2265 }
2266 ::core::result::Result::Err(err) => err.into(),
2267 }
2268 }
2269 Self {
2270 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2271 Next: Next::<Identity, Impl, OFFSET>,
2272 Skip: Skip::<Identity, Impl, OFFSET>,
2273 Reset: Reset::<Identity, Impl, OFFSET>,
2274 Clone: Clone::<Identity, Impl, OFFSET>,
2275 GetCount: GetCount::<Identity, Impl, OFFSET>,
2276 }
2277 }
2278 pub fn matches(iid: &windows::core::GUID) -> bool {
2279 iid == &<IEnumBackgroundCopyJobs1 as ::windows::core::ComInterface>::IID
2280 }
2281 }
2282 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2283 pub trait IEnumBitsPeerCacheRecords_Impl: Sized {
2284 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IBitsPeerCacheRecord>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2285 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2286 fn Reset(&self) -> ::windows::core::Result<()>;
2287 fn Clone(&self) -> ::windows::core::Result<IEnumBitsPeerCacheRecords>;
2288 fn GetCount(&self) -> ::windows::core::Result<u32>;
2289 }
2290 impl ::windows::core::RuntimeName for IEnumBitsPeerCacheRecords {}
2291 impl IEnumBitsPeerCacheRecords_Vtbl {
2292 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>() -> IEnumBitsPeerCacheRecords_Vtbl {
2293 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2294 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2295 let this = (*this).get_impl();
2296 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2297 }
2298 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2299 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2300 let this = (*this).get_impl();
2301 this.Skip(::core::mem::transmute_copy(&celt)).into()
2302 }
2303 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2304 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2305 let this = (*this).get_impl();
2306 this.Reset().into()
2307 }
2308 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2309 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2310 let this = (*this).get_impl();
2311 match this.Clone() {
2312 ::core::result::Result::Ok(ok__) => {
2313 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2314 ::windows::core::HRESULT(0)
2315 }
2316 ::core::result::Result::Err(err) => err.into(),
2317 }
2318 }
2319 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeerCacheRecords_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2320 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2321 let this = (*this).get_impl();
2322 match this.GetCount() {
2323 ::core::result::Result::Ok(ok__) => {
2324 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2325 ::windows::core::HRESULT(0)
2326 }
2327 ::core::result::Result::Err(err) => err.into(),
2328 }
2329 }
2330 Self {
2331 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2332 Next: Next::<Identity, Impl, OFFSET>,
2333 Skip: Skip::<Identity, Impl, OFFSET>,
2334 Reset: Reset::<Identity, Impl, OFFSET>,
2335 Clone: Clone::<Identity, Impl, OFFSET>,
2336 GetCount: GetCount::<Identity, Impl, OFFSET>,
2337 }
2338 }
2339 pub fn matches(iid: &windows::core::GUID) -> bool {
2340 iid == &<IEnumBitsPeerCacheRecords as ::windows::core::ComInterface>::IID
2341 }
2342 }
2343 #[doc = "*Required features: `\"Win32_Networking_BackgroundIntelligentTransferService\"`, `\"implement\"`*"]
2344 pub trait IEnumBitsPeers_Impl: Sized {
2345 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IBitsPeer>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2346 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2347 fn Reset(&self) -> ::windows::core::Result<()>;
2348 fn Clone(&self) -> ::windows::core::Result<IEnumBitsPeers>;
2349 fn GetCount(&self) -> ::windows::core::Result<u32>;
2350 }
2351 impl ::windows::core::RuntimeName for IEnumBitsPeers {}
2352 impl IEnumBitsPeers_Vtbl {
2353 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>() -> IEnumBitsPeers_Vtbl {
2354 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2355 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2356 let this = (*this).get_impl();
2357 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2358 }
2359 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2360 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2361 let this = (*this).get_impl();
2362 this.Skip(::core::mem::transmute_copy(&celt)).into()
2363 }
2364 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2365 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2366 let this = (*this).get_impl();
2367 this.Reset().into()
2368 }
2369 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2370 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2371 let this = (*this).get_impl();
2372 match this.Clone() {
2373 ::core::result::Result::Ok(ok__) => {
2374 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2375 ::windows::core::HRESULT(0)
2376 }
2377 ::core::result::Result::Err(err) => err.into(),
2378 }
2379 }
2380 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumBitsPeers_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pucount: *mut u32) -> ::windows::core::HRESULT {
2381 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2382 let this = (*this).get_impl();
2383 match this.GetCount() {
2384 ::core::result::Result::Ok(ok__) => {
2385 ::core::ptr::write(pucount, ::core::mem::transmute(ok__));
2386 ::windows::core::HRESULT(0)
2387 }
2388 ::core::result::Result::Err(err) => err.into(),
2389 }
2390 }
2391 Self {
2392 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2393 Next: Next::<Identity, Impl, OFFSET>,
2394 Skip: Skip::<Identity, Impl, OFFSET>,
2395 Reset: Reset::<Identity, Impl, OFFSET>,
2396 Clone: Clone::<Identity, Impl, OFFSET>,
2397 GetCount: GetCount::<Identity, Impl, OFFSET>,
2398 }
2399 }
2400 pub fn matches(iid: &windows::core::GUID) -> bool {
2401 iid == &<IEnumBitsPeers as ::windows::core::ComInterface>::IID
2402 }
2403 }