1 #![allow(unused_variables, non_upper_case_globals, non_snake_case, unused_unsafe, non_camel_case_types, dead_code, clippy::all)]
2 pub const ADVANCED_DUP: u32 = 8192u32;
3 pub const ADVANCED_DUPLEX: u32 = 1024u32;
4 pub const ALL_PAGES: u32 = 0u32;
5 pub const AUTO_ADVANCE: u32 = 512u32;
6 pub const AUTO_SOURCE: u32 = 32768u32;
7 pub const BACK_FIRST: u32 = 16u32;
8 pub const BACK_ONLY: u32 = 64u32;
9 pub const BARCODE_READER: u32 = 262144u32;
10 pub const BARCODE_READER_READY: u32 = 16384u32;
11 pub const BASE_VAL_WIA_ERROR: u32 = 0u32;
12 pub const BASE_VAL_WIA_SUCCESS: u32 = 0u32;
13 pub const BOTTOM_JUSTIFIED: u32 = 2u32;
14 pub const BUS_TYPE_FIREWIRE: u32 = 203u32;
15 pub const BUS_TYPE_PARALLEL: u32 = 202u32;
16 pub const BUS_TYPE_SCSI: u32 = 200u32;
17 pub const BUS_TYPE_USB: u32 = 201u32;
18 pub const CAPTUREMODE_BURST: u32 = 2u32;
19 pub const CAPTUREMODE_NORMAL: u32 = 1u32;
20 pub const CAPTUREMODE_TIMELAPSE: u32 = 3u32;
21 pub const CENTERED: u32 = 1u32;
22 pub const CLSID_WiaDefaultSegFilter: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3572814603, 2857, 17672, [137, 34, 12, 87, 151, 212, 39, 101]);
23 pub const CMD_GETADFAVAILABLE: u32 = 117u32;
24 pub const CMD_GETADFHASPAPER: u32 = 120u32;
25 pub const CMD_GETADFOPEN: u32 = 118u32;
26 pub const CMD_GETADFREADY: u32 = 119u32;
27 pub const CMD_GETADFSTATUS: u32 = 121u32;
28 pub const CMD_GETADFUNLOADREADY: u32 = 122u32;
29 pub const CMD_GETCAPABILITIES: u32 = 132u32;
30 pub const CMD_GETSUPPORTEDFILEFORMATS: u32 = 138u32;
31 pub const CMD_GETSUPPORTEDMEMORYFORMATS: u32 = 139u32;
32 pub const CMD_GETTPAAVAILABLE: u32 = 123u32;
33 pub const CMD_GETTPAOPENED: u32 = 124u32;
34 pub const CMD_GET_INTERRUPT_EVENT: u32 = 133u32;
35 pub const CMD_INITIALIZE: u32 = 100u32;
36 pub const CMD_LOAD_ADF: u32 = 115u32;
37 pub const CMD_RESETSCANNER: u32 = 131u32;
38 pub const CMD_SENDSCSICOMMAND: u32 = 127u32;
39 pub const CMD_SETCOLORDITHER: u32 = 111u32;
40 pub const CMD_SETCONTRAST: u32 = 104u32;
41 pub const CMD_SETDATATYPE: u32 = 106u32;
42 pub const CMD_SETDITHER: u32 = 107u32;
43 pub const CMD_SETFILTER: u32 = 114u32;
44 pub const CMD_SETFORMAT: u32 = 140u32;
45 pub const CMD_SETGSDNAME: u32 = 134u32;
46 pub const CMD_SETINTENSITY: u32 = 105u32;
47 pub const CMD_SETLAMP: u32 = 126u32;
48 pub const CMD_SETMATRIX: u32 = 112u32;
49 pub const CMD_SETMIRROR: u32 = 108u32;
50 pub const CMD_SETNEGATIVE: u32 = 109u32;
51 pub const CMD_SETSCANMODE: u32 = 135u32;
52 pub const CMD_SETSPEED: u32 = 113u32;
53 pub const CMD_SETSTIDEVICEHKEY: u32 = 136u32;
54 pub const CMD_SETTONEMAP: u32 = 110u32;
55 pub const CMD_SETXRESOLUTION: u32 = 102u32;
56 pub const CMD_SETYRESOLUTION: u32 = 103u32;
57 pub const CMD_STI_DEVICERESET: u32 = 128u32;
58 pub const CMD_STI_DIAGNOSTIC: u32 = 130u32;
59 pub const CMD_STI_GETSTATUS: u32 = 129u32;
60 pub const CMD_TPAREADY: u32 = 125u32;
61 pub const CMD_UNINITIALIZE: u32 = 101u32;
62 pub const CMD_UNLOAD_ADF: u32 = 116u32;
63 pub const COPY_PARENT_PROPERTY_VALUES: u32 = 1073741824u32;
64 pub const DETECT_DUP: u32 = 64u32;
65 pub const DETECT_DUP_AVAIL: u32 = 256u32;
66 pub const DETECT_FEED: u32 = 32u32;
67 pub const DETECT_FEED_AVAIL: u32 = 128u32;
68 pub const DETECT_FILM_TPA: u32 = 1024u32;
69 pub const DETECT_FLAT: u32 = 8u32;
70 pub const DETECT_SCAN: u32 = 16u32;
71 pub const DETECT_STOR: u32 = 4096u32;
72 #[derive(:: std :: clone :: Clone)]
73 #[repr(C)]
74 #[cfg(feature = "Win32_Foundation")]
75 pub struct DEVICEDIALOGDATA {
76     pub cbSize: u32,
77     pub hwndParent: super::super::Foundation::HWND,
78     pub pIWiaItemRoot: ::std::option::Option<IWiaItem>,
79     pub dwFlags: u32,
80     pub lIntent: i32,
81     pub lItemCount: i32,
82     pub ppWiaItems: *mut ::std::option::Option<IWiaItem>,
83 }
84 #[cfg(feature = "Win32_Foundation")]
85 impl DEVICEDIALOGDATA {}
86 #[cfg(feature = "Win32_Foundation")]
87 impl ::std::default::Default for DEVICEDIALOGDATA {
88     fn default() -> Self {
89         unsafe { ::std::mem::zeroed() }
90     }
91 }
92 #[cfg(feature = "Win32_Foundation")]
93 impl ::std::fmt::Debug for DEVICEDIALOGDATA {
94     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
95         fmt.debug_struct("DEVICEDIALOGDATA").field("cbSize", &self.cbSize).field("hwndParent", &self.hwndParent).field("pIWiaItemRoot", &self.pIWiaItemRoot).field("dwFlags", &self.dwFlags).field("lIntent", &self.lIntent).field("lItemCount", &self.lItemCount).field("ppWiaItems", &self.ppWiaItems).finish()
96     }
97 }
98 #[cfg(feature = "Win32_Foundation")]
99 impl ::std::cmp::PartialEq for DEVICEDIALOGDATA {
100     fn eq(&self, other: &Self) -> bool {
101         self.cbSize == other.cbSize && self.hwndParent == other.hwndParent && self.pIWiaItemRoot == other.pIWiaItemRoot && self.dwFlags == other.dwFlags && self.lIntent == other.lIntent && self.lItemCount == other.lItemCount && self.ppWiaItems == other.ppWiaItems
102     }
103 }
104 #[cfg(feature = "Win32_Foundation")]
105 impl ::std::cmp::Eq for DEVICEDIALOGDATA {}
106 #[cfg(feature = "Win32_Foundation")]
107 unsafe impl ::windows::runtime::Abi for DEVICEDIALOGDATA {
108     type Abi = ::std::mem::ManuallyDrop<Self>;
109     type DefaultType = Self;
110 }
111 #[derive(:: std :: clone :: Clone)]
112 #[repr(C)]
113 #[cfg(feature = "Win32_Foundation")]
114 pub struct DEVICEDIALOGDATA2 {
115     pub cbSize: u32,
116     pub pIWiaItemRoot: ::std::option::Option<IWiaItem2>,
117     pub dwFlags: u32,
118     pub hwndParent: super::super::Foundation::HWND,
119     pub bstrFolderName: super::super::Foundation::BSTR,
120     pub bstrFilename: super::super::Foundation::BSTR,
121     pub lNumFiles: i32,
122     pub pbstrFilePaths: *mut super::super::Foundation::BSTR,
123     pub pWiaItem: ::std::option::Option<IWiaItem2>,
124 }
125 #[cfg(feature = "Win32_Foundation")]
126 impl DEVICEDIALOGDATA2 {}
127 #[cfg(feature = "Win32_Foundation")]
128 impl ::std::default::Default for DEVICEDIALOGDATA2 {
129     fn default() -> Self {
130         unsafe { ::std::mem::zeroed() }
131     }
132 }
133 #[cfg(feature = "Win32_Foundation")]
134 impl ::std::fmt::Debug for DEVICEDIALOGDATA2 {
135     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
136         fmt.debug_struct("DEVICEDIALOGDATA2")
137             .field("cbSize", &self.cbSize)
138             .field("pIWiaItemRoot", &self.pIWiaItemRoot)
139             .field("dwFlags", &self.dwFlags)
140             .field("hwndParent", &self.hwndParent)
141             .field("bstrFolderName", &self.bstrFolderName)
142             .field("bstrFilename", &self.bstrFilename)
143             .field("lNumFiles", &self.lNumFiles)
144             .field("pbstrFilePaths", &self.pbstrFilePaths)
145             .field("pWiaItem", &self.pWiaItem)
146             .finish()
147     }
148 }
149 #[cfg(feature = "Win32_Foundation")]
150 impl ::std::cmp::PartialEq for DEVICEDIALOGDATA2 {
151     fn eq(&self, other: &Self) -> bool {
152         self.cbSize == other.cbSize && self.pIWiaItemRoot == other.pIWiaItemRoot && self.dwFlags == other.dwFlags && self.hwndParent == other.hwndParent && self.bstrFolderName == other.bstrFolderName && self.bstrFilename == other.bstrFilename && self.lNumFiles == other.lNumFiles && self.pbstrFilePaths == other.pbstrFilePaths && self.pWiaItem == other.pWiaItem
153     }
154 }
155 #[cfg(feature = "Win32_Foundation")]
156 impl ::std::cmp::Eq for DEVICEDIALOGDATA2 {}
157 #[cfg(feature = "Win32_Foundation")]
158 unsafe impl ::windows::runtime::Abi for DEVICEDIALOGDATA2 {
159     type Abi = ::std::mem::ManuallyDrop<Self>;
160     type DefaultType = Self;
161 }
162 pub const DEVICE_ATTENTION: u32 = 1024u32;
163 pub const DUP: u32 = 4u32;
164 pub const DUPLEX: u32 = 4u32;
165 pub const DUP_READY: u32 = 4u32;
166 #[cfg(feature = "Win32_Foundation")]
167 pub type DeviceDialogFunction = unsafe extern "system" fn(param0: *mut ::std::mem::ManuallyDrop<DEVICEDIALOGDATA>) -> ::windows::runtime::HRESULT;
168 pub const EFFECTMODE_BW: u32 = 2u32;
169 pub const EFFECTMODE_SEPIA: u32 = 3u32;
170 pub const EFFECTMODE_STANDARD: u32 = 1u32;
171 pub const ENDORSER: u32 = 131072u32;
172 pub const ENDORSER_READY: u32 = 8192u32;
173 pub const ESC_TWAIN_CAPABILITY: u32 = 2001u32;
174 pub const ESC_TWAIN_PRIVATE_SUPPORTED_CAPS: u32 = 2002u32;
175 pub const EXPOSUREMETERING_AVERAGE: u32 = 1u32;
176 pub const EXPOSUREMETERING_CENTERSPOT: u32 = 4u32;
177 pub const EXPOSUREMETERING_CENTERWEIGHT: u32 = 2u32;
178 pub const EXPOSUREMETERING_MULTISPOT: u32 = 3u32;
179 pub const EXPOSUREMODE_APERTURE_PRIORITY: u32 = 3u32;
180 pub const EXPOSUREMODE_AUTO: u32 = 2u32;
181 pub const EXPOSUREMODE_MANUAL: u32 = 1u32;
182 pub const EXPOSUREMODE_PORTRAIT: u32 = 7u32;
183 pub const EXPOSUREMODE_PROGRAM_ACTION: u32 = 6u32;
184 pub const EXPOSUREMODE_PROGRAM_CREATIVE: u32 = 5u32;
185 pub const EXPOSUREMODE_SHUTTER_PRIORITY: u32 = 4u32;
186 pub const FEED: u32 = 1u32;
187 pub const FEEDER: u32 = 1u32;
188 pub const FEED_READY: u32 = 1u32;
189 pub const FILM_TPA: u32 = 512u32;
190 pub const FILM_TPA_READY: u32 = 64u32;
191 pub const FLASHMODE_AUTO: u32 = 1u32;
192 pub const FLASHMODE_EXTERNALSYNC: u32 = 6u32;
193 pub const FLASHMODE_FILL: u32 = 3u32;
194 pub const FLASHMODE_OFF: u32 = 2u32;
195 pub const FLASHMODE_REDEYE_AUTO: u32 = 4u32;
196 pub const FLASHMODE_REDEYE_FILL: u32 = 5u32;
197 pub const FLAT: u32 = 2u32;
198 pub const FLATBED: u32 = 2u32;
199 pub const FLAT_COVER_UP: u32 = 8u32;
200 pub const FLAT_READY: u32 = 2u32;
201 pub const FOCUSMETERING_CENTERSPOT: u32 = 1u32;
202 pub const FOCUSMETERING_MULTISPOT: u32 = 2u32;
203 pub const FOCUSMODE_AUTO: u32 = 2u32;
204 pub const FOCUSMODE_MACROAUTO: u32 = 3u32;
205 pub const FOCUSMODE_MANUAL: u32 = 1u32;
206 pub const FRONT_FIRST: u32 = 8u32;
207 pub const FRONT_ONLY: u32 = 32u32;
208 pub const GUID_DEVINTERFACE_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1809653702, 33039, 4560, [190, 199, 8, 0, 43, 226, 9, 47]);
209 #[repr(transparent)]
210 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
211 pub struct IEnumWIA_DEV_CAPS(::windows::runtime::IUnknown);
212 impl IEnumWIA_DEV_CAPS {
213     #[cfg(feature = "Win32_Foundation")]
214     pub unsafe fn Next(&self, celt: u32, rgelt: *mut WIA_DEV_CAP, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
215         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
216     }
217     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
218         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
219     }
220     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
221         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
222     }
223     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumWIA_DEV_CAPS> {
224         let mut result__: <IEnumWIA_DEV_CAPS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
225         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWIA_DEV_CAPS>(result__)
226     }
227     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
228         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
229         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
230     }
231 }
232 unsafe impl ::windows::runtime::Interface for IEnumWIA_DEV_CAPS {
233     type Vtable = IEnumWIA_DEV_CAPS_abi;
234     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(533480071, 44198, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
235 }
236 impl ::std::convert::From<IEnumWIA_DEV_CAPS> for ::windows::runtime::IUnknown {
237     fn from(value: IEnumWIA_DEV_CAPS) -> Self {
238         unsafe { ::std::mem::transmute(value) }
239     }
240 }
241 impl ::std::convert::From<&IEnumWIA_DEV_CAPS> for ::windows::runtime::IUnknown {
242     fn from(value: &IEnumWIA_DEV_CAPS) -> Self {
243         ::std::convert::From::from(::std::clone::Clone::clone(value))
244     }
245 }
246 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumWIA_DEV_CAPS {
247     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
248         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
249     }
250 }
251 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumWIA_DEV_CAPS {
252     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
253         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
254     }
255 }
256 #[repr(C)]
257 #[doc(hidden)]
258 pub struct IEnumWIA_DEV_CAPS_abi(
259     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
260     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
261     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
262     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut ::std::mem::ManuallyDrop<WIA_DEV_CAP>, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
263     #[cfg(not(feature = "Win32_Foundation"))] usize,
264     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
265     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
266     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
267     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcelt: *mut u32) -> ::windows::runtime::HRESULT,
268 );
269 #[repr(transparent)]
270 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
271 pub struct IEnumWIA_DEV_INFO(::windows::runtime::IUnknown);
272 impl IEnumWIA_DEV_INFO {
273     pub unsafe fn Next(&self, celt: u32, rgelt: *mut ::std::option::Option<IWiaPropertyStorage>, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
274         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
275     }
276     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
277         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
278     }
279     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
280         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
281     }
282     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumWIA_DEV_INFO> {
283         let mut result__: <IEnumWIA_DEV_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
284         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWIA_DEV_INFO>(result__)
285     }
286     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
287         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
288         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
289     }
290 }
291 unsafe impl ::windows::runtime::Interface for IEnumWIA_DEV_INFO {
292     type Vtable = IEnumWIA_DEV_INFO_abi;
293     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1580775484, 36081, 4561, [191, 146, 0, 96, 8, 30, 216, 17]);
294 }
295 impl ::std::convert::From<IEnumWIA_DEV_INFO> for ::windows::runtime::IUnknown {
296     fn from(value: IEnumWIA_DEV_INFO) -> Self {
297         unsafe { ::std::mem::transmute(value) }
298     }
299 }
300 impl ::std::convert::From<&IEnumWIA_DEV_INFO> for ::windows::runtime::IUnknown {
301     fn from(value: &IEnumWIA_DEV_INFO) -> Self {
302         ::std::convert::From::from(::std::clone::Clone::clone(value))
303     }
304 }
305 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumWIA_DEV_INFO {
306     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
307         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
308     }
309 }
310 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumWIA_DEV_INFO {
311     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
312         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
313     }
314 }
315 #[repr(C)]
316 #[doc(hidden)]
317 pub struct IEnumWIA_DEV_INFO_abi(
318     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
319     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
320     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
321     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut ::windows::runtime::RawPtr, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
322     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
323     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
324     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
325     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: *mut u32) -> ::windows::runtime::HRESULT,
326 );
327 #[repr(transparent)]
328 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
329 pub struct IEnumWIA_FORMAT_INFO(::windows::runtime::IUnknown);
330 impl IEnumWIA_FORMAT_INFO {
331     pub unsafe fn Next(&self, celt: u32, rgelt: *mut WIA_FORMAT_INFO, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
332         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(rgelt), ::std::mem::transmute(pceltfetched)).ok()
333     }
334     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
335         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
336     }
337     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
338         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
339     }
340     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumWIA_FORMAT_INFO> {
341         let mut result__: <IEnumWIA_FORMAT_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
342         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWIA_FORMAT_INFO>(result__)
343     }
344     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
345         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
346         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
347     }
348 }
349 unsafe impl ::windows::runtime::Interface for IEnumWIA_FORMAT_INFO {
350     type Vtable = IEnumWIA_FORMAT_INFO_abi;
351     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2176777307, 25965, 17649, [178, 76, 212, 29, 81, 180, 220, 129]);
352 }
353 impl ::std::convert::From<IEnumWIA_FORMAT_INFO> for ::windows::runtime::IUnknown {
354     fn from(value: IEnumWIA_FORMAT_INFO) -> Self {
355         unsafe { ::std::mem::transmute(value) }
356     }
357 }
358 impl ::std::convert::From<&IEnumWIA_FORMAT_INFO> for ::windows::runtime::IUnknown {
359     fn from(value: &IEnumWIA_FORMAT_INFO) -> Self {
360         ::std::convert::From::from(::std::clone::Clone::clone(value))
361     }
362 }
363 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumWIA_FORMAT_INFO {
364     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
365         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
366     }
367 }
368 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumWIA_FORMAT_INFO {
369     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
370         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
371     }
372 }
373 #[repr(C)]
374 #[doc(hidden)]
375 pub struct IEnumWIA_FORMAT_INFO_abi(
376     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
377     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
378     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
379     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, rgelt: *mut WIA_FORMAT_INFO, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
380     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
381     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
382     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
383     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcelt: *mut u32) -> ::windows::runtime::HRESULT,
384 );
385 #[repr(transparent)]
386 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
387 pub struct IEnumWiaItem(::windows::runtime::IUnknown);
388 impl IEnumWiaItem {
389     pub unsafe fn Next(&self, celt: u32, ppiwiaitem: *mut ::std::option::Option<IWiaItem>, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
390         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(ppiwiaitem), ::std::mem::transmute(pceltfetched)).ok()
391     }
392     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
393         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
394     }
395     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
396         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
397     }
398     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumWiaItem> {
399         let mut result__: <IEnumWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
400         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWiaItem>(result__)
401     }
402     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
403         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
404         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
405     }
406 }
407 unsafe impl ::windows::runtime::Interface for IEnumWiaItem {
408     type Vtable = IEnumWiaItem_abi;
409     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1585677308, 13201, 4562, [154, 51, 0, 192, 79, 163, 97, 69]);
410 }
411 impl ::std::convert::From<IEnumWiaItem> for ::windows::runtime::IUnknown {
412     fn from(value: IEnumWiaItem) -> Self {
413         unsafe { ::std::mem::transmute(value) }
414     }
415 }
416 impl ::std::convert::From<&IEnumWiaItem> for ::windows::runtime::IUnknown {
417     fn from(value: &IEnumWiaItem) -> Self {
418         ::std::convert::From::from(::std::clone::Clone::clone(value))
419     }
420 }
421 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumWiaItem {
422     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
423         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
424     }
425 }
426 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumWiaItem {
427     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
428         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
429     }
430 }
431 #[repr(C)]
432 #[doc(hidden)]
433 pub struct IEnumWiaItem_abi(
434     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
435     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
436     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
437     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, ppiwiaitem: *mut ::windows::runtime::RawPtr, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
438     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
439     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
440     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
441     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: *mut u32) -> ::windows::runtime::HRESULT,
442 );
443 #[repr(transparent)]
444 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
445 pub struct IEnumWiaItem2(::windows::runtime::IUnknown);
446 impl IEnumWiaItem2 {
447     pub unsafe fn Next(&self, celt: u32, ppiwiaitem2: *mut ::std::option::Option<IWiaItem2>, pceltfetched: *mut u32) -> ::windows::runtime::Result<()> {
448         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt), ::std::mem::transmute(ppiwiaitem2), ::std::mem::transmute(pceltfetched)).ok()
449     }
450     pub unsafe fn Skip(&self, celt: u32) -> ::windows::runtime::Result<()> {
451         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(celt)).ok()
452     }
453     pub unsafe fn Reset(&self) -> ::windows::runtime::Result<()> {
454         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
455     }
456     pub unsafe fn Clone(&self) -> ::windows::runtime::Result<IEnumWiaItem2> {
457         let mut result__: <IEnumWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
458         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWiaItem2>(result__)
459     }
460     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
461         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
462         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
463     }
464 }
465 unsafe impl ::windows::runtime::Interface for IEnumWiaItem2 {
466     type Vtable = IEnumWiaItem2_abi;
467     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1503070964, 52493, 17625, [171, 36, 82, 41, 86, 48, 229, 130]);
468 }
469 impl ::std::convert::From<IEnumWiaItem2> for ::windows::runtime::IUnknown {
470     fn from(value: IEnumWiaItem2) -> Self {
471         unsafe { ::std::mem::transmute(value) }
472     }
473 }
474 impl ::std::convert::From<&IEnumWiaItem2> for ::windows::runtime::IUnknown {
475     fn from(value: &IEnumWiaItem2) -> Self {
476         ::std::convert::From::from(::std::clone::Clone::clone(value))
477     }
478 }
479 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IEnumWiaItem2 {
480     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
481         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
482     }
483 }
484 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IEnumWiaItem2 {
485     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
486         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
487     }
488 }
489 #[repr(C)]
490 #[doc(hidden)]
491 pub struct IEnumWiaItem2_abi(
492     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
493     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
494     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
495     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32, ppiwiaitem2: *mut ::windows::runtime::RawPtr, pceltfetched: *mut u32) -> ::windows::runtime::HRESULT,
496     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: u32) -> ::windows::runtime::HRESULT,
497     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
498     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
499     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, celt: *mut u32) -> ::windows::runtime::HRESULT,
500 );
501 pub const IMPRINTER: u32 = 65536u32;
502 pub const IMPRINTER_READY: u32 = 4096u32;
503 pub const IT_MSG_DATA: u32 = 2u32;
504 pub const IT_MSG_DATA_HEADER: u32 = 1u32;
505 pub const IT_MSG_FILE_PREVIEW_DATA: u32 = 6u32;
506 pub const IT_MSG_FILE_PREVIEW_DATA_HEADER: u32 = 7u32;
507 pub const IT_MSG_NEW_PAGE: u32 = 5u32;
508 pub const IT_MSG_STATUS: u32 = 3u32;
509 pub const IT_MSG_TERMINATION: u32 = 4u32;
510 pub const IT_STATUS_MASK: u32 = 7u32;
511 pub const IT_STATUS_PROCESSING_DATA: u32 = 2u32;
512 pub const IT_STATUS_TRANSFER_FROM_DEVICE: u32 = 1u32;
513 pub const IT_STATUS_TRANSFER_TO_CLIENT: u32 = 4u32;
514 #[repr(transparent)]
515 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
516 pub struct IWiaAppErrorHandler(::windows::runtime::IUnknown);
517 impl IWiaAppErrorHandler {
518     #[cfg(feature = "Win32_Foundation")]
519     pub unsafe fn GetWindow(&self) -> ::windows::runtime::Result<super::super::Foundation::HWND> {
520         let mut result__: <super::super::Foundation::HWND as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
521         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::HWND>(result__)
522     }
523     pub unsafe fn ReportStatus<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaItem2>>(&self, lflags: i32, pwiaitem2: Param1, hrstatus: ::windows::runtime::HRESULT, lpercentcomplete: i32) -> ::windows::runtime::Result<()> {
524         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pwiaitem2.into_param().abi(), ::std::mem::transmute(hrstatus), ::std::mem::transmute(lpercentcomplete)).ok()
525     }
526 }
527 unsafe impl ::windows::runtime::Interface for IWiaAppErrorHandler {
528     type Vtable = IWiaAppErrorHandler_abi;
529     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1813387372, 53414, 16396, [128, 244, 210, 105, 134, 160, 231, 52]);
530 }
531 impl ::std::convert::From<IWiaAppErrorHandler> for ::windows::runtime::IUnknown {
532     fn from(value: IWiaAppErrorHandler) -> Self {
533         unsafe { ::std::mem::transmute(value) }
534     }
535 }
536 impl ::std::convert::From<&IWiaAppErrorHandler> for ::windows::runtime::IUnknown {
537     fn from(value: &IWiaAppErrorHandler) -> Self {
538         ::std::convert::From::from(::std::clone::Clone::clone(value))
539     }
540 }
541 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaAppErrorHandler {
542     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
543         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
544     }
545 }
546 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaAppErrorHandler {
547     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
548         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
549     }
550 }
551 #[repr(C)]
552 #[doc(hidden)]
553 pub struct IWiaAppErrorHandler_abi(
554     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
555     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
556     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
557     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, phwnd: *mut super::super::Foundation::HWND) -> ::windows::runtime::HRESULT,
558     #[cfg(not(feature = "Win32_Foundation"))] usize,
559     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiaitem2: ::windows::runtime::RawPtr, hrstatus: ::windows::runtime::HRESULT, lpercentcomplete: i32) -> ::windows::runtime::HRESULT,
560 );
561 #[repr(transparent)]
562 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
563 pub struct IWiaDataCallback(::windows::runtime::IUnknown);
564 impl IWiaDataCallback {
565     pub unsafe fn BandedDataCallback(&self, lmessage: i32, lstatus: i32, lpercentcomplete: i32, loffset: i32, llength: i32, lreserved: i32, lreslength: i32, pbbuffer: *mut u8) -> ::windows::runtime::Result<()> {
566         (::windows::runtime::Interface::vtable(self).3)(
567             ::std::mem::transmute_copy(self),
568             ::std::mem::transmute(lmessage),
569             ::std::mem::transmute(lstatus),
570             ::std::mem::transmute(lpercentcomplete),
571             ::std::mem::transmute(loffset),
572             ::std::mem::transmute(llength),
573             ::std::mem::transmute(lreserved),
574             ::std::mem::transmute(lreslength),
575             ::std::mem::transmute(pbbuffer),
576         )
577         .ok()
578     }
579 }
580 unsafe impl ::windows::runtime::Interface for IWiaDataCallback {
581     type Vtable = IWiaDataCallback_abi;
582     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2774050918, 42416, 4562, [160, 143, 0, 192, 79, 114, 220, 60]);
583 }
584 impl ::std::convert::From<IWiaDataCallback> for ::windows::runtime::IUnknown {
585     fn from(value: IWiaDataCallback) -> Self {
586         unsafe { ::std::mem::transmute(value) }
587     }
588 }
589 impl ::std::convert::From<&IWiaDataCallback> for ::windows::runtime::IUnknown {
590     fn from(value: &IWiaDataCallback) -> Self {
591         ::std::convert::From::from(::std::clone::Clone::clone(value))
592     }
593 }
594 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaDataCallback {
595     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
596         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
597     }
598 }
599 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaDataCallback {
600     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
601         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
602     }
603 }
604 #[repr(C)]
605 #[doc(hidden)]
606 pub struct IWiaDataCallback_abi(
607     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
608     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
609     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
610     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lmessage: i32, lstatus: i32, lpercentcomplete: i32, loffset: i32, llength: i32, lreserved: i32, lreslength: i32, pbbuffer: *mut u8) -> ::windows::runtime::HRESULT,
611 );
612 #[repr(transparent)]
613 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
614 pub struct IWiaDataTransfer(::windows::runtime::IUnknown);
615 impl IWiaDataTransfer {
616     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage"))]
617     pub unsafe fn idtGetData<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaDataCallback>>(&self, pmedium: *mut super::super::System::Com::STGMEDIUM, piwiadatacallback: Param1) -> ::windows::runtime::Result<()> {
618         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pmedium), piwiadatacallback.into_param().abi()).ok()
619     }
620     #[cfg(feature = "Win32_Foundation")]
621     pub unsafe fn idtGetBandedData<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaDataCallback>>(&self, pwiadatatransinfo: *mut WIA_DATA_TRANSFER_INFO, piwiadatacallback: Param1) -> ::windows::runtime::Result<()> {
622         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(pwiadatatransinfo), piwiadatacallback.into_param().abi()).ok()
623     }
624     pub unsafe fn idtQueryGetData(&self, pfe: *const WIA_FORMAT_INFO) -> ::windows::runtime::Result<()> {
625         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pfe)).ok()
626     }
627     pub unsafe fn idtEnumWIA_FORMAT_INFO(&self) -> ::windows::runtime::Result<IEnumWIA_FORMAT_INFO> {
628         let mut result__: <IEnumWIA_FORMAT_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
629         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWIA_FORMAT_INFO>(result__)
630     }
631     pub unsafe fn idtGetExtendedTransferInfo(&self) -> ::windows::runtime::Result<WIA_EXTENDED_TRANSFER_INFO> {
632         let mut result__: <WIA_EXTENDED_TRANSFER_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
633         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<WIA_EXTENDED_TRANSFER_INFO>(result__)
634     }
635 }
636 unsafe impl ::windows::runtime::Interface for IWiaDataTransfer {
637     type Vtable = IWiaDataTransfer_abi;
638     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2798582168, 42416, 4562, [160, 143, 0, 192, 79, 114, 220, 60]);
639 }
640 impl ::std::convert::From<IWiaDataTransfer> for ::windows::runtime::IUnknown {
641     fn from(value: IWiaDataTransfer) -> Self {
642         unsafe { ::std::mem::transmute(value) }
643     }
644 }
645 impl ::std::convert::From<&IWiaDataTransfer> for ::windows::runtime::IUnknown {
646     fn from(value: &IWiaDataTransfer) -> Self {
647         ::std::convert::From::from(::std::clone::Clone::clone(value))
648     }
649 }
650 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaDataTransfer {
651     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
652         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
653     }
654 }
655 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaDataTransfer {
656     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
657         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
658     }
659 }
660 #[repr(C)]
661 #[doc(hidden)]
662 pub struct IWiaDataTransfer_abi(
663     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
664     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
665     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
666     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pmedium: *mut ::std::mem::ManuallyDrop<super::super::System::Com::STGMEDIUM>, piwiadatacallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
667     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage")))] usize,
668     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwiadatatransinfo: *mut WIA_DATA_TRANSFER_INFO, piwiadatacallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
669     #[cfg(not(feature = "Win32_Foundation"))] usize,
670     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pfe: *const WIA_FORMAT_INFO) -> ::windows::runtime::HRESULT,
671     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
672     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pextendedtransferinfo: *mut WIA_EXTENDED_TRANSFER_INFO) -> ::windows::runtime::HRESULT,
673 );
674 #[repr(transparent)]
675 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
676 pub struct IWiaDevMgr(::windows::runtime::IUnknown);
677 impl IWiaDevMgr {
678     pub unsafe fn EnumDeviceInfo(&self, lflag: i32) -> ::windows::runtime::Result<IEnumWIA_DEV_INFO> {
679         let mut result__: <IEnumWIA_DEV_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
680         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflag), &mut result__).from_abi::<IEnumWIA_DEV_INFO>(result__)
681     }
682     #[cfg(feature = "Win32_Foundation")]
683     pub unsafe fn CreateDevice<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdeviceid: Param0) -> ::windows::runtime::Result<IWiaItem> {
684         let mut result__: <IWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
685         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), bstrdeviceid.into_param().abi(), &mut result__).from_abi::<IWiaItem>(result__)
686     }
687     #[cfg(feature = "Win32_Foundation")]
688     pub unsafe fn SelectDeviceDlg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut super::super::Foundation::BSTR, ppitemroot: *mut ::std::option::Option<IWiaItem>) -> ::windows::runtime::Result<()> {
689         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(ldevicetype), ::std::mem::transmute(lflags), ::std::mem::transmute(pbstrdeviceid), ::std::mem::transmute(ppitemroot)).ok()
690     }
691     #[cfg(feature = "Win32_Foundation")]
692     pub unsafe fn SelectDeviceDlgID<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
693         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(ldevicetype), ::std::mem::transmute(lflags), ::std::mem::transmute(pbstrdeviceid)).ok()
694     }
695     #[cfg(feature = "Win32_Foundation")]
696     pub unsafe fn GetImageDlg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param4: ::windows::runtime::IntoParam<'a, IWiaItem>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, hwndparent: Param0, ldevicetype: i32, lflags: i32, lintent: i32, pitemroot: Param4, bstrfilename: Param5, pguidformat: *mut ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
697         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(ldevicetype), ::std::mem::transmute(lflags), ::std::mem::transmute(lintent), pitemroot.into_param().abi(), bstrfilename.into_param().abi(), ::std::mem::transmute(pguidformat)).ok()
698     }
699     #[cfg(feature = "Win32_Foundation")]
700     pub unsafe fn RegisterEventCallbackProgram<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
701         &self,
702         lflags: i32,
703         bstrdeviceid: Param1,
704         peventguid: *const ::windows::runtime::GUID,
705         bstrcommandline: Param3,
706         bstrname: Param4,
707         bstrdescription: Param5,
708         bstricon: Param6,
709     ) -> ::windows::runtime::Result<()> {
710         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), bstrcommandline.into_param().abi(), bstrname.into_param().abi(), bstrdescription.into_param().abi(), bstricon.into_param().abi()).ok()
711     }
712     #[cfg(feature = "Win32_Foundation")]
713     pub unsafe fn RegisterEventCallbackInterface<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, IWiaEventCallback>>(&self, lflags: i32, bstrdeviceid: Param1, peventguid: *const ::windows::runtime::GUID, piwiaeventcallback: Param3) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
714         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
715         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), piwiaeventcallback.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
716     }
717     #[cfg(feature = "Win32_Foundation")]
718     pub unsafe fn RegisterEventCallbackCLSID<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
719         &self,
720         lflags: i32,
721         bstrdeviceid: Param1,
722         peventguid: *const ::windows::runtime::GUID,
723         pclsid: *const ::windows::runtime::GUID,
724         bstrname: Param4,
725         bstrdescription: Param5,
726         bstricon: Param6,
727     ) -> ::windows::runtime::Result<()> {
728         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), ::std::mem::transmute(pclsid), bstrname.into_param().abi(), bstrdescription.into_param().abi(), bstricon.into_param().abi()).ok()
729     }
730     #[cfg(feature = "Win32_Foundation")]
731     pub unsafe fn AddDeviceDlg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, lflags: i32) -> ::windows::runtime::Result<()> {
732         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(lflags)).ok()
733     }
734 }
735 unsafe impl ::windows::runtime::Interface for IWiaDevMgr {
736     type Vtable = IWiaDevMgr_abi;
737     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1588744234, 36081, 4561, [191, 146, 0, 96, 8, 30, 216, 17]);
738 }
739 impl ::std::convert::From<IWiaDevMgr> for ::windows::runtime::IUnknown {
740     fn from(value: IWiaDevMgr) -> Self {
741         unsafe { ::std::mem::transmute(value) }
742     }
743 }
744 impl ::std::convert::From<&IWiaDevMgr> for ::windows::runtime::IUnknown {
745     fn from(value: &IWiaDevMgr) -> Self {
746         ::std::convert::From::from(::std::clone::Clone::clone(value))
747     }
748 }
749 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaDevMgr {
750     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
751         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
752     }
753 }
754 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaDevMgr {
755     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
756         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
757     }
758 }
759 #[repr(C)]
760 #[doc(hidden)]
761 pub struct IWiaDevMgr_abi(
762     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
763     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
764     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
765     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflag: i32, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
766     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppwiaitemroot: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
767     #[cfg(not(feature = "Win32_Foundation"))] usize,
768     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppitemroot: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
769     #[cfg(not(feature = "Win32_Foundation"))] usize,
770     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
771     #[cfg(not(feature = "Win32_Foundation"))] usize,
772     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, ldevicetype: i32, lflags: i32, lintent: i32, pitemroot: ::windows::runtime::RawPtr, bstrfilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, pguidformat: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
773     #[cfg(not(feature = "Win32_Foundation"))] usize,
774     #[cfg(feature = "Win32_Foundation")]
775     pub  unsafe extern "system" fn(
776         this: ::windows::runtime::RawPtr,
777         lflags: i32,
778         bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
779         peventguid: *const ::windows::runtime::GUID,
780         bstrcommandline: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
781         bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
782         bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
783         bstricon: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
784     ) -> ::windows::runtime::HRESULT,
785     #[cfg(not(feature = "Win32_Foundation"))] usize,
786     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, peventguid: *const ::windows::runtime::GUID, piwiaeventcallback: ::windows::runtime::RawPtr, peventobject: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
787     #[cfg(not(feature = "Win32_Foundation"))] usize,
788     #[cfg(feature = "Win32_Foundation")]
789     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, peventguid: *const ::windows::runtime::GUID, pclsid: *const ::windows::runtime::GUID, bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstricon: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
790     #[cfg(not(feature = "Win32_Foundation"))] usize,
791     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, lflags: i32) -> ::windows::runtime::HRESULT,
792     #[cfg(not(feature = "Win32_Foundation"))] usize,
793 );
794 #[repr(transparent)]
795 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
796 pub struct IWiaDevMgr2(::windows::runtime::IUnknown);
797 impl IWiaDevMgr2 {
798     pub unsafe fn EnumDeviceInfo(&self, lflags: i32) -> ::windows::runtime::Result<IEnumWIA_DEV_INFO> {
799         let mut result__: <IEnumWIA_DEV_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
800         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), &mut result__).from_abi::<IEnumWIA_DEV_INFO>(result__)
801     }
802     #[cfg(feature = "Win32_Foundation")]
803     pub unsafe fn CreateDevice<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstrdeviceid: Param1) -> ::windows::runtime::Result<IWiaItem2> {
804         let mut result__: <IWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
805         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), &mut result__).from_abi::<IWiaItem2>(result__)
806     }
807     #[cfg(feature = "Win32_Foundation")]
808     pub unsafe fn SelectDeviceDlg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut super::super::Foundation::BSTR, ppitemroot: *mut ::std::option::Option<IWiaItem2>) -> ::windows::runtime::Result<()> {
809         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(ldevicetype), ::std::mem::transmute(lflags), ::std::mem::transmute(pbstrdeviceid), ::std::mem::transmute(ppitemroot)).ok()
810     }
811     #[cfg(feature = "Win32_Foundation")]
812     pub unsafe fn SelectDeviceDlgID<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut super::super::Foundation::BSTR) -> ::windows::runtime::Result<()> {
813         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(ldevicetype), ::std::mem::transmute(lflags), ::std::mem::transmute(pbstrdeviceid)).ok()
814     }
815     #[cfg(feature = "Win32_Foundation")]
816     pub unsafe fn RegisterEventCallbackInterface<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, IWiaEventCallback>>(&self, lflags: i32, bstrdeviceid: Param1, peventguid: *const ::windows::runtime::GUID, piwiaeventcallback: Param3) -> ::windows::runtime::Result<::windows::runtime::IUnknown> {
817         let mut result__: <::windows::runtime::IUnknown as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
818         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), piwiaeventcallback.into_param().abi(), &mut result__).from_abi::<::windows::runtime::IUnknown>(result__)
819     }
820     #[cfg(feature = "Win32_Foundation")]
821     pub unsafe fn RegisterEventCallbackProgram<
822         'a,
823         Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
824         Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
825         Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
826         Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
827         Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
828         Param7: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>,
829     >(
830         &self,
831         lflags: i32,
832         bstrdeviceid: Param1,
833         peventguid: *const ::windows::runtime::GUID,
834         bstrfullappname: Param3,
835         bstrcommandlinearg: Param4,
836         bstrname: Param5,
837         bstrdescription: Param6,
838         bstricon: Param7,
839     ) -> ::windows::runtime::Result<()> {
840         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), bstrfullappname.into_param().abi(), bstrcommandlinearg.into_param().abi(), bstrname.into_param().abi(), bstrdescription.into_param().abi(), bstricon.into_param().abi()).ok()
841     }
842     #[cfg(feature = "Win32_Foundation")]
843     pub unsafe fn RegisterEventCallbackCLSID<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param6: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
844         &self,
845         lflags: i32,
846         bstrdeviceid: Param1,
847         peventguid: *const ::windows::runtime::GUID,
848         pclsid: *const ::windows::runtime::GUID,
849         bstrname: Param4,
850         bstrdescription: Param5,
851         bstricon: Param6,
852     ) -> ::windows::runtime::Result<()> {
853         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrdeviceid.into_param().abi(), ::std::mem::transmute(peventguid), ::std::mem::transmute(pclsid), bstrname.into_param().abi(), bstrdescription.into_param().abi(), bstricon.into_param().abi()).ok()
854     }
855     #[cfg(feature = "Win32_Foundation")]
856     pub unsafe fn GetImageDlg<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
857         &self,
858         lflags: i32,
859         bstrdeviceid: Param1,
860         hwndparent: Param2,
861         bstrfoldername: Param3,
862         bstrfilename: Param4,
863         plnumfiles: *mut i32,
864         ppbstrfilepaths: *mut *mut super::super::Foundation::BSTR,
865         ppitem: *mut ::std::option::Option<IWiaItem2>,
866     ) -> ::windows::runtime::Result<()> {
867         (::windows::runtime::Interface::vtable(self).10)(
868             ::std::mem::transmute_copy(self),
869             ::std::mem::transmute(lflags),
870             bstrdeviceid.into_param().abi(),
871             hwndparent.into_param().abi(),
872             bstrfoldername.into_param().abi(),
873             bstrfilename.into_param().abi(),
874             ::std::mem::transmute(plnumfiles),
875             ::std::mem::transmute(ppbstrfilepaths),
876             ::std::mem::transmute(ppitem),
877         )
878         .ok()
879     }
880 }
881 unsafe impl ::windows::runtime::Interface for IWiaDevMgr2 {
882     type Vtable = IWiaDevMgr2_abi;
883     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2042658033, 52189, 16878, [142, 195, 240, 0, 128, 202, 218, 122]);
884 }
885 impl ::std::convert::From<IWiaDevMgr2> for ::windows::runtime::IUnknown {
886     fn from(value: IWiaDevMgr2) -> Self {
887         unsafe { ::std::mem::transmute(value) }
888     }
889 }
890 impl ::std::convert::From<&IWiaDevMgr2> for ::windows::runtime::IUnknown {
891     fn from(value: &IWiaDevMgr2) -> Self {
892         ::std::convert::From::from(::std::clone::Clone::clone(value))
893     }
894 }
895 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaDevMgr2 {
896     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
897         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
898     }
899 }
900 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaDevMgr2 {
901     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
902         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
903     }
904 }
905 #[repr(C)]
906 #[doc(hidden)]
907 pub struct IWiaDevMgr2_abi(
908     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
909     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
910     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
911     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
912     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppwiaitem2root: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
913     #[cfg(not(feature = "Win32_Foundation"))] usize,
914     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppitemroot: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
915     #[cfg(not(feature = "Win32_Foundation"))] usize,
916     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, ldevicetype: i32, lflags: i32, pbstrdeviceid: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
917     #[cfg(not(feature = "Win32_Foundation"))] usize,
918     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, peventguid: *const ::windows::runtime::GUID, piwiaeventcallback: ::windows::runtime::RawPtr, peventobject: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
919     #[cfg(not(feature = "Win32_Foundation"))] usize,
920     #[cfg(feature = "Win32_Foundation")]
921     pub  unsafe extern "system" fn(
922         this: ::windows::runtime::RawPtr,
923         lflags: i32,
924         bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
925         peventguid: *const ::windows::runtime::GUID,
926         bstrfullappname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
927         bstrcommandlinearg: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
928         bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
929         bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
930         bstricon: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
931     ) -> ::windows::runtime::HRESULT,
932     #[cfg(not(feature = "Win32_Foundation"))] usize,
933     #[cfg(feature = "Win32_Foundation")]
934     pub  unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, peventguid: *const ::windows::runtime::GUID, pclsid: *const ::windows::runtime::GUID, bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstricon: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
935     #[cfg(not(feature = "Win32_Foundation"))] usize,
936     #[cfg(feature = "Win32_Foundation")]
937     pub  unsafe extern "system" fn(
938         this: ::windows::runtime::RawPtr,
939         lflags: i32,
940         bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
941         hwndparent: super::super::Foundation::HWND,
942         bstrfoldername: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
943         bstrfilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
944         plnumfiles: *mut i32,
945         ppbstrfilepaths: *mut *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
946         ppitem: *mut ::windows::runtime::RawPtr,
947     ) -> ::windows::runtime::HRESULT,
948     #[cfg(not(feature = "Win32_Foundation"))] usize,
949 );
950 #[repr(transparent)]
951 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
952 pub struct IWiaDrvItem(::windows::runtime::IUnknown);
953 impl IWiaDrvItem {
954     pub unsafe fn GetItemFlags(&self) -> ::windows::runtime::Result<i32> {
955         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
956         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
957     }
958     pub unsafe fn GetDeviceSpecContext(&self) -> ::windows::runtime::Result<*mut u8> {
959         let mut result__: <*mut u8 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
960         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), &mut result__).from_abi::<*mut u8>(result__)
961     }
962     #[cfg(feature = "Win32_Foundation")]
963     pub unsafe fn GetFullItemName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
964         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
965         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
966     }
967     #[cfg(feature = "Win32_Foundation")]
968     pub unsafe fn GetItemName(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
969         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
970         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
971     }
972     pub unsafe fn AddItemToFolder<'a, Param0: ::windows::runtime::IntoParam<'a, IWiaDrvItem>>(&self, __midl__iwiadrvitem0004: Param0) -> ::windows::runtime::Result<()> {
973         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), __midl__iwiadrvitem0004.into_param().abi()).ok()
974     }
975     pub unsafe fn UnlinkItemTree(&self, __midl__iwiadrvitem0005: i32) -> ::windows::runtime::Result<()> {
976         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiadrvitem0005)).ok()
977     }
978     pub unsafe fn RemoveItemFromFolder(&self, __midl__iwiadrvitem0006: i32) -> ::windows::runtime::Result<()> {
979         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiadrvitem0006)).ok()
980     }
981     #[cfg(feature = "Win32_Foundation")]
982     pub unsafe fn FindItemByName<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, __midl__iwiadrvitem0007: i32, __midl__iwiadrvitem0008: Param1) -> ::windows::runtime::Result<IWiaDrvItem> {
983         let mut result__: <IWiaDrvItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
984         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiadrvitem0007), __midl__iwiadrvitem0008.into_param().abi(), &mut result__).from_abi::<IWiaDrvItem>(result__)
985     }
986     #[cfg(feature = "Win32_Foundation")]
987     pub unsafe fn FindChildItemByName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, __midl__iwiadrvitem0010: Param0) -> ::windows::runtime::Result<IWiaDrvItem> {
988         let mut result__: <IWiaDrvItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
989         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), __midl__iwiadrvitem0010.into_param().abi(), &mut result__).from_abi::<IWiaDrvItem>(result__)
990     }
991     pub unsafe fn GetParentItem(&self) -> ::windows::runtime::Result<IWiaDrvItem> {
992         let mut result__: <IWiaDrvItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
993         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaDrvItem>(result__)
994     }
995     pub unsafe fn GetFirstChildItem(&self) -> ::windows::runtime::Result<IWiaDrvItem> {
996         let mut result__: <IWiaDrvItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
997         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaDrvItem>(result__)
998     }
999     pub unsafe fn GetNextSiblingItem(&self) -> ::windows::runtime::Result<IWiaDrvItem> {
1000         let mut result__: <IWiaDrvItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1001         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaDrvItem>(result__)
1002     }
1003     #[cfg(feature = "Win32_Foundation")]
1004     pub unsafe fn DumpItemData(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1005         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1006         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1007     }
1008 }
1009 unsafe impl ::windows::runtime::Interface for IWiaDrvItem {
1010     type Vtable = IWiaDrvItem_abi;
1011     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(520271301, 45068, 4562, [160, 148, 0, 192, 79, 114, 220, 60]);
1012 }
1013 impl ::std::convert::From<IWiaDrvItem> for ::windows::runtime::IUnknown {
1014     fn from(value: IWiaDrvItem) -> Self {
1015         unsafe { ::std::mem::transmute(value) }
1016     }
1017 }
1018 impl ::std::convert::From<&IWiaDrvItem> for ::windows::runtime::IUnknown {
1019     fn from(value: &IWiaDrvItem) -> Self {
1020         ::std::convert::From::from(::std::clone::Clone::clone(value))
1021     }
1022 }
1023 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaDrvItem {
1024     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1025         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1026     }
1027 }
1028 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaDrvItem {
1029     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1030         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1031     }
1032 }
1033 #[repr(C)]
1034 #[doc(hidden)]
1035 pub struct IWiaDrvItem_abi(
1036     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1037     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1038     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1039     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0000: *mut i32) -> ::windows::runtime::HRESULT,
1040     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0001: *mut *mut u8) -> ::windows::runtime::HRESULT,
1041     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0002: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1042     #[cfg(not(feature = "Win32_Foundation"))] usize,
1043     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0003: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1044     #[cfg(not(feature = "Win32_Foundation"))] usize,
1045     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0004: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1046     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0005: i32) -> ::windows::runtime::HRESULT,
1047     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0006: i32) -> ::windows::runtime::HRESULT,
1048     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0007: i32, __midl__iwiadrvitem0008: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, __midl__iwiadrvitem0009: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1049     #[cfg(not(feature = "Win32_Foundation"))] usize,
1050     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0010: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, __midl__iwiadrvitem0011: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1051     #[cfg(not(feature = "Win32_Foundation"))] usize,
1052     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0012: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1053     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0013: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1054     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0014: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1055     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiadrvitem0015: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1056     #[cfg(not(feature = "Win32_Foundation"))] usize,
1057 );
1058 #[repr(transparent)]
1059 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1060 pub struct IWiaErrorHandler(::windows::runtime::IUnknown);
1061 impl IWiaErrorHandler {
1062     #[cfg(feature = "Win32_Foundation")]
1063     pub unsafe fn ReportStatus<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, IWiaItem2>>(&self, lflags: i32, hwndparent: Param1, pwiaitem2: Param2, hrstatus: ::windows::runtime::HRESULT, lpercentcomplete: i32) -> ::windows::runtime::Result<()> {
1064         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), hwndparent.into_param().abi(), pwiaitem2.into_param().abi(), ::std::mem::transmute(hrstatus), ::std::mem::transmute(lpercentcomplete)).ok()
1065     }
1066     #[cfg(feature = "Win32_Foundation")]
1067     pub unsafe fn GetStatusDescription<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaItem2>>(&self, lflags: i32, pwiaitem2: Param1, hrstatus: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1068         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1069         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pwiaitem2.into_param().abi(), ::std::mem::transmute(hrstatus), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1070     }
1071 }
1072 unsafe impl ::windows::runtime::Interface for IWiaErrorHandler {
1073     type Vtable = IWiaErrorHandler_abi;
1074     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(239751601, 48159, 17469, [168, 53, 114, 232, 144, 117, 158, 243]);
1075 }
1076 impl ::std::convert::From<IWiaErrorHandler> for ::windows::runtime::IUnknown {
1077     fn from(value: IWiaErrorHandler) -> Self {
1078         unsafe { ::std::mem::transmute(value) }
1079     }
1080 }
1081 impl ::std::convert::From<&IWiaErrorHandler> for ::windows::runtime::IUnknown {
1082     fn from(value: &IWiaErrorHandler) -> Self {
1083         ::std::convert::From::from(::std::clone::Clone::clone(value))
1084     }
1085 }
1086 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaErrorHandler {
1087     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1088         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1089     }
1090 }
1091 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaErrorHandler {
1092     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1093         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1094     }
1095 }
1096 #[repr(C)]
1097 #[doc(hidden)]
1098 pub struct IWiaErrorHandler_abi(
1099     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1100     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1102     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, hwndparent: super::super::Foundation::HWND, pwiaitem2: ::windows::runtime::RawPtr, hrstatus: ::windows::runtime::HRESULT, lpercentcomplete: i32) -> ::windows::runtime::HRESULT,
1103     #[cfg(not(feature = "Win32_Foundation"))] usize,
1104     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiaitem2: ::windows::runtime::RawPtr, hrstatus: ::windows::runtime::HRESULT, pbstrdescription: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1105     #[cfg(not(feature = "Win32_Foundation"))] usize,
1106 );
1107 #[repr(transparent)]
1108 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1109 pub struct IWiaEventCallback(::windows::runtime::IUnknown);
1110 impl IWiaEventCallback {
1111     #[cfg(feature = "Win32_Foundation")]
1112     pub unsafe fn ImageEventCallback<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param5: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
1113         &self,
1114         peventguid: *const ::windows::runtime::GUID,
1115         bstreventdescription: Param1,
1116         bstrdeviceid: Param2,
1117         bstrdevicedescription: Param3,
1118         dwdevicetype: u32,
1119         bstrfullitemname: Param5,
1120         puleventtype: *mut u32,
1121         ulreserved: u32,
1122     ) -> ::windows::runtime::Result<()> {
1123         (::windows::runtime::Interface::vtable(self).3)(
1124             ::std::mem::transmute_copy(self),
1125             ::std::mem::transmute(peventguid),
1126             bstreventdescription.into_param().abi(),
1127             bstrdeviceid.into_param().abi(),
1128             bstrdevicedescription.into_param().abi(),
1129             ::std::mem::transmute(dwdevicetype),
1130             bstrfullitemname.into_param().abi(),
1131             ::std::mem::transmute(puleventtype),
1132             ::std::mem::transmute(ulreserved),
1133         )
1134         .ok()
1135     }
1136 }
1137 unsafe impl ::windows::runtime::Interface for IWiaEventCallback {
1138     type Vtable = IWiaEventCallback_abi;
1139     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2925692848, 132, 4562, [151, 59, 0, 160, 201, 6, 143, 46]);
1140 }
1141 impl ::std::convert::From<IWiaEventCallback> for ::windows::runtime::IUnknown {
1142     fn from(value: IWiaEventCallback) -> Self {
1143         unsafe { ::std::mem::transmute(value) }
1144     }
1145 }
1146 impl ::std::convert::From<&IWiaEventCallback> for ::windows::runtime::IUnknown {
1147     fn from(value: &IWiaEventCallback) -> Self {
1148         ::std::convert::From::from(::std::clone::Clone::clone(value))
1149     }
1150 }
1151 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaEventCallback {
1152     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1153         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1154     }
1155 }
1156 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaEventCallback {
1157     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1158         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1159     }
1160 }
1161 #[repr(C)]
1162 #[doc(hidden)]
1163 pub struct IWiaEventCallback_abi(
1164     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1165     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1166     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1167     #[cfg(feature = "Win32_Foundation")]
1168     pub  unsafe extern "system" fn(
1169         this: ::windows::runtime::RawPtr,
1170         peventguid: *const ::windows::runtime::GUID,
1171         bstreventdescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1172         bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1173         bstrdevicedescription: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1174         dwdevicetype: u32,
1175         bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1176         puleventtype: *mut u32,
1177         ulreserved: u32,
1178     ) -> ::windows::runtime::HRESULT,
1179     #[cfg(not(feature = "Win32_Foundation"))] usize,
1180 );
1181 #[repr(transparent)]
1182 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1183 pub struct IWiaImageFilter(::windows::runtime::IUnknown);
1184 impl IWiaImageFilter {
1185     pub unsafe fn InitializeFilter<'a, Param0: ::windows::runtime::IntoParam<'a, IWiaItem2>, Param1: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, pwiaitem2: Param0, pwiatransfercallback: Param1) -> ::windows::runtime::Result<()> {
1186         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), pwiaitem2.into_param().abi(), pwiatransfercallback.into_param().abi()).ok()
1187     }
1188     pub unsafe fn SetNewCallback<'a, Param0: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, pwiatransfercallback: Param0) -> ::windows::runtime::Result<()> {
1189         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), pwiatransfercallback.into_param().abi()).ok()
1190     }
1191     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
1192     pub unsafe fn FilterPreviewImage<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaItem2>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::RECT>, Param3: ::windows::runtime::IntoParam<'a, super::super::System::Com::IStream>>(&self, lflags: i32, pwiachilditem2: Param1, inputimageextents: Param2, pinputstream: Param3) -> ::windows::runtime::Result<()> {
1193         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pwiachilditem2.into_param().abi(), inputimageextents.into_param().abi(), pinputstream.into_param().abi()).ok()
1194     }
1195     pub unsafe fn ApplyProperties<'a, Param0: ::windows::runtime::IntoParam<'a, IWiaPropertyStorage>>(&self, pwiapropertystorage: Param0) -> ::windows::runtime::Result<()> {
1196         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), pwiapropertystorage.into_param().abi()).ok()
1197     }
1198 }
1199 unsafe impl ::windows::runtime::Interface for IWiaImageFilter {
1200     type Vtable = IWiaImageFilter_abi;
1201     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2829557754, 17675, 16881, [143, 135, 132, 156, 205, 148, 235, 246]);
1202 }
1203 impl ::std::convert::From<IWiaImageFilter> for ::windows::runtime::IUnknown {
1204     fn from(value: IWiaImageFilter) -> Self {
1205         unsafe { ::std::mem::transmute(value) }
1206     }
1207 }
1208 impl ::std::convert::From<&IWiaImageFilter> for ::windows::runtime::IUnknown {
1209     fn from(value: &IWiaImageFilter) -> Self {
1210         ::std::convert::From::from(::std::clone::Clone::clone(value))
1211     }
1212 }
1213 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaImageFilter {
1214     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1215         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1216     }
1217 }
1218 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaImageFilter {
1219     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1220         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1221     }
1222 }
1223 #[repr(C)]
1224 #[doc(hidden)]
1225 pub struct IWiaImageFilter_abi(
1226     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1227     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1228     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1229     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwiaitem2: ::windows::runtime::RawPtr, pwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1230     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1231     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiachilditem2: ::windows::runtime::RawPtr, inputimageextents: super::super::Foundation::RECT, pinputstream: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1232     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com")))] usize,
1233     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pwiapropertystorage: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1234 );
1235 #[repr(transparent)]
1236 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1237 pub struct IWiaItem(::windows::runtime::IUnknown);
1238 impl IWiaItem {
1239     pub unsafe fn GetItemType(&self) -> ::windows::runtime::Result<i32> {
1240         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1241         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
1242     }
1243     pub unsafe fn AnalyzeItem(&self, lflags: i32) -> ::windows::runtime::Result<()> {
1244         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags)).ok()
1245     }
1246     pub unsafe fn EnumChildItems(&self) -> ::windows::runtime::Result<IEnumWiaItem> {
1247         let mut result__: <IEnumWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1248         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWiaItem>(result__)
1249     }
1250     pub unsafe fn DeleteItem(&self, lflags: i32) -> ::windows::runtime::Result<()> {
1251         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags)).ok()
1252     }
1253     #[cfg(feature = "Win32_Foundation")]
1254     pub unsafe fn CreateChildItem<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstritemname: Param1, bstrfullitemname: Param2) -> ::windows::runtime::Result<IWiaItem> {
1255         let mut result__: <IWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1256         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstritemname.into_param().abi(), bstrfullitemname.into_param().abi(), &mut result__).from_abi::<IWiaItem>(result__)
1257     }
1258     pub unsafe fn EnumRegisterEventInfo(&self, lflags: i32, peventguid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<IEnumWIA_DEV_CAPS> {
1259         let mut result__: <IEnumWIA_DEV_CAPS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1260         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(peventguid), &mut result__).from_abi::<IEnumWIA_DEV_CAPS>(result__)
1261     }
1262     #[cfg(feature = "Win32_Foundation")]
1263     pub unsafe fn FindItemByName<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstrfullitemname: Param1) -> ::windows::runtime::Result<IWiaItem> {
1264         let mut result__: <IWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1265         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrfullitemname.into_param().abi(), &mut result__).from_abi::<IWiaItem>(result__)
1266     }
1267     #[cfg(feature = "Win32_Foundation")]
1268     pub unsafe fn DeviceDlg<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>>(&self, hwndparent: Param0, lflags: i32, lintent: i32, plitemcount: *mut i32, ppiwiaitem: *mut *mut ::std::option::Option<IWiaItem>) -> ::windows::runtime::Result<()> {
1269         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), hwndparent.into_param().abi(), ::std::mem::transmute(lflags), ::std::mem::transmute(lintent), ::std::mem::transmute(plitemcount), ::std::mem::transmute(ppiwiaitem)).ok()
1270     }
1271     pub unsafe fn DeviceCommand(&self, lflags: i32, pcmdguid: *const ::windows::runtime::GUID, piwiaitem: *mut ::std::option::Option<IWiaItem>) -> ::windows::runtime::Result<()> {
1272         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(pcmdguid), ::std::mem::transmute(piwiaitem)).ok()
1273     }
1274     pub unsafe fn GetRootItem(&self) -> ::windows::runtime::Result<IWiaItem> {
1275         let mut result__: <IWiaItem as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1276         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaItem>(result__)
1277     }
1278     pub unsafe fn EnumDeviceCapabilities(&self, lflags: i32) -> ::windows::runtime::Result<IEnumWIA_DEV_CAPS> {
1279         let mut result__: <IEnumWIA_DEV_CAPS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1280         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), &mut result__).from_abi::<IEnumWIA_DEV_CAPS>(result__)
1281     }
1282     #[cfg(feature = "Win32_Foundation")]
1283     pub unsafe fn DumpItemData(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1284         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1285         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1286     }
1287     #[cfg(feature = "Win32_Foundation")]
1288     pub unsafe fn DumpDrvItemData(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1289         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1290         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1291     }
1292     #[cfg(feature = "Win32_Foundation")]
1293     pub unsafe fn DumpTreeItemData(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1294         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1295         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1296     }
1297     pub unsafe fn Diagnostic(&self, ulsize: u32, pbuffer: *const u8) -> ::windows::runtime::Result<()> {
1298         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(ulsize), ::std::mem::transmute(pbuffer)).ok()
1299     }
1300 }
1301 unsafe impl ::windows::runtime::Interface for IWiaItem {
1302     type Vtable = IWiaItem_abi;
1303     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1303489808, 13201, 4562, [154, 51, 0, 192, 79, 163, 97, 69]);
1304 }
1305 impl ::std::convert::From<IWiaItem> for ::windows::runtime::IUnknown {
1306     fn from(value: IWiaItem) -> Self {
1307         unsafe { ::std::mem::transmute(value) }
1308     }
1309 }
1310 impl ::std::convert::From<&IWiaItem> for ::windows::runtime::IUnknown {
1311     fn from(value: &IWiaItem) -> Self {
1312         ::std::convert::From::from(::std::clone::Clone::clone(value))
1313     }
1314 }
1315 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaItem {
1316     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1317         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1318     }
1319 }
1320 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaItem {
1321     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1322         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1323     }
1324 }
1325 #[repr(C)]
1326 #[doc(hidden)]
1327 pub struct IWiaItem_abi(
1328     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1329     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1330     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1331     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pitemtype: *mut i32) -> ::windows::runtime::HRESULT,
1332     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32) -> ::windows::runtime::HRESULT,
1333     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppienumwiaitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1334     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32) -> ::windows::runtime::HRESULT,
1335     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstritemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppiwiaitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1336     #[cfg(not(feature = "Win32_Foundation"))] usize,
1337     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, peventguid: *const ::windows::runtime::GUID, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1338     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppiwiaitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1339     #[cfg(not(feature = "Win32_Foundation"))] usize,
1340     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hwndparent: super::super::Foundation::HWND, lflags: i32, lintent: i32, plitemcount: *mut i32, ppiwiaitem: *mut *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1341     #[cfg(not(feature = "Win32_Foundation"))] usize,
1342     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pcmdguid: *const ::windows::runtime::GUID, piwiaitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1343     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppiwiaitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1344     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, ppienumwia_dev_caps: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1345     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1346     #[cfg(not(feature = "Win32_Foundation"))] usize,
1347     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1348     #[cfg(not(feature = "Win32_Foundation"))] usize,
1349     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdata: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1350     #[cfg(not(feature = "Win32_Foundation"))] usize,
1351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ulsize: u32, pbuffer: *const u8) -> ::windows::runtime::HRESULT,
1352 );
1353 #[repr(transparent)]
1354 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1355 pub struct IWiaItem2(::windows::runtime::IUnknown);
1356 impl IWiaItem2 {
1357     #[cfg(feature = "Win32_Foundation")]
1358     pub unsafe fn CreateChildItem<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, litemflags: i32, lcreationflags: i32, bstritemname: Param2) -> ::windows::runtime::Result<IWiaItem2> {
1359         let mut result__: <IWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1360         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(litemflags), ::std::mem::transmute(lcreationflags), bstritemname.into_param().abi(), &mut result__).from_abi::<IWiaItem2>(result__)
1361     }
1362     pub unsafe fn DeleteItem(&self, lflags: i32) -> ::windows::runtime::Result<()> {
1363         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags)).ok()
1364     }
1365     pub unsafe fn EnumChildItems(&self, pcategoryguid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<IEnumWiaItem2> {
1366         let mut result__: <IEnumWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1367         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcategoryguid), &mut result__).from_abi::<IEnumWiaItem2>(result__)
1368     }
1369     #[cfg(feature = "Win32_Foundation")]
1370     pub unsafe fn FindItemByName<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstrfullitemname: Param1) -> ::windows::runtime::Result<IWiaItem2> {
1371         let mut result__: <IWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1372         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrfullitemname.into_param().abi(), &mut result__).from_abi::<IWiaItem2>(result__)
1373     }
1374     pub unsafe fn GetItemCategory(&self) -> ::windows::runtime::Result<::windows::runtime::GUID> {
1375         let mut result__: <::windows::runtime::GUID as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1376         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), &mut result__).from_abi::<::windows::runtime::GUID>(result__)
1377     }
1378     pub unsafe fn GetItemType(&self) -> ::windows::runtime::Result<i32> {
1379         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1380         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), &mut result__).from_abi::<i32>(result__)
1381     }
1382     #[cfg(feature = "Win32_Foundation")]
1383     pub unsafe fn DeviceDlg<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(
1384         &self,
1385         lflags: i32,
1386         hwndparent: Param1,
1387         bstrfoldername: Param2,
1388         bstrfilename: Param3,
1389         plnumfiles: *mut i32,
1390         ppbstrfilepaths: *mut *mut super::super::Foundation::BSTR,
1391         ppitem: *mut ::std::option::Option<IWiaItem2>,
1392     ) -> ::windows::runtime::Result<()> {
1393         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), hwndparent.into_param().abi(), bstrfoldername.into_param().abi(), bstrfilename.into_param().abi(), ::std::mem::transmute(plnumfiles), ::std::mem::transmute(ppbstrfilepaths), ::std::mem::transmute(ppitem)).ok()
1394     }
1395     pub unsafe fn DeviceCommand(&self, lflags: i32, pcmdguid: *const ::windows::runtime::GUID, ppiwiaitem2: *mut ::std::option::Option<IWiaItem2>) -> ::windows::runtime::Result<()> {
1396         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(pcmdguid), ::std::mem::transmute(ppiwiaitem2)).ok()
1397     }
1398     pub unsafe fn EnumDeviceCapabilities(&self, lflags: i32) -> ::windows::runtime::Result<IEnumWIA_DEV_CAPS> {
1399         let mut result__: <IEnumWIA_DEV_CAPS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1400         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), &mut result__).from_abi::<IEnumWIA_DEV_CAPS>(result__)
1401     }
1402     #[cfg(feature = "Win32_Foundation")]
1403     pub unsafe fn CheckExtension<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstrname: Param1, riidextensioninterface: *const ::windows::runtime::GUID, pbextensionexists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::Result<()> {
1404         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrname.into_param().abi(), ::std::mem::transmute(riidextensioninterface), ::std::mem::transmute(pbextensionexists)).ok()
1405     }
1406     #[cfg(feature = "Win32_Foundation")]
1407     pub unsafe fn GetExtension<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstrname: Param1, riidextensioninterface: *const ::windows::runtime::GUID, ppout: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::Result<()> {
1408         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstrname.into_param().abi(), ::std::mem::transmute(riidextensioninterface), ::std::mem::transmute(ppout)).ok()
1409     }
1410     pub unsafe fn GetParentItem(&self) -> ::windows::runtime::Result<IWiaItem2> {
1411         let mut result__: <IWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1412         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaItem2>(result__)
1413     }
1414     pub unsafe fn GetRootItem(&self) -> ::windows::runtime::Result<IWiaItem2> {
1415         let mut result__: <IWiaItem2 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1416         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IWiaItem2>(result__)
1417     }
1418     pub unsafe fn GetPreviewComponent(&self, lflags: i32) -> ::windows::runtime::Result<IWiaPreview> {
1419         let mut result__: <IWiaPreview as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1420         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), &mut result__).from_abi::<IWiaPreview>(result__)
1421     }
1422     pub unsafe fn EnumRegisterEventInfo(&self, lflags: i32, peventguid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<IEnumWIA_DEV_CAPS> {
1423         let mut result__: <IEnumWIA_DEV_CAPS as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1424         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(peventguid), &mut result__).from_abi::<IEnumWIA_DEV_CAPS>(result__)
1425     }
1426     pub unsafe fn Diagnostic(&self, ulsize: u32, pbuffer: *const u8) -> ::windows::runtime::Result<()> {
1427         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(ulsize), ::std::mem::transmute(pbuffer)).ok()
1428     }
1429 }
1430 unsafe impl ::windows::runtime::Interface for IWiaItem2 {
1431     type Vtable = IWiaItem2_abi;
1432     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1824129141, 4743, 16509, [155, 119, 207, 14, 3, 4, 53, 204]);
1433 }
1434 impl ::std::convert::From<IWiaItem2> for ::windows::runtime::IUnknown {
1435     fn from(value: IWiaItem2) -> Self {
1436         unsafe { ::std::mem::transmute(value) }
1437     }
1438 }
1439 impl ::std::convert::From<&IWiaItem2> for ::windows::runtime::IUnknown {
1440     fn from(value: &IWiaItem2) -> Self {
1441         ::std::convert::From::from(::std::clone::Clone::clone(value))
1442     }
1443 }
1444 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaItem2 {
1445     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1446         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1447     }
1448 }
1449 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaItem2 {
1450     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1451         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1452     }
1453 }
1454 #[repr(C)]
1455 #[doc(hidden)]
1456 pub struct IWiaItem2_abi(
1457     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1458     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1460     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, litemflags: i32, lcreationflags: i32, bstritemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppiwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1461     #[cfg(not(feature = "Win32_Foundation"))] usize,
1462     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32) -> ::windows::runtime::HRESULT,
1463     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcategoryguid: *const ::windows::runtime::GUID, ppienumwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1464     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppiwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1465     #[cfg(not(feature = "Win32_Foundation"))] usize,
1466     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pitemcategoryguid: *mut ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
1467     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pitemtype: *mut i32) -> ::windows::runtime::HRESULT,
1468     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, hwndparent: super::super::Foundation::HWND, bstrfoldername: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrfilename: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, plnumfiles: *mut i32, ppbstrfilepaths: *mut *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppitem: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1469     #[cfg(not(feature = "Win32_Foundation"))] usize,
1470     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pcmdguid: *const ::windows::runtime::GUID, ppiwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1471     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, ppienumwia_dev_caps: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1472     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, riidextensioninterface: *const ::windows::runtime::GUID, pbextensionexists: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
1473     #[cfg(not(feature = "Win32_Foundation"))] usize,
1474     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstrname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, riidextensioninterface: *const ::windows::runtime::GUID, ppout: *mut *mut ::std::ffi::c_void) -> ::windows::runtime::HRESULT,
1475     #[cfg(not(feature = "Win32_Foundation"))] usize,
1476     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppiwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1477     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppiwiaitem2: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1478     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, ppwiapreview: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1479     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, peventguid: *const ::windows::runtime::GUID, ppienum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1480     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ulsize: u32, pbuffer: *const u8) -> ::windows::runtime::HRESULT,
1481 );
1482 #[repr(transparent)]
1483 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1484 pub struct IWiaItemExtras(::windows::runtime::IUnknown);
1485 impl IWiaItemExtras {
1486     #[cfg(feature = "Win32_Foundation")]
1487     pub unsafe fn GetExtendedErrorInfo(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
1488         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1489         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
1490     }
1491     pub unsafe fn Escape(&self, dwescapecode: u32, lpindata: *const u8, cbindatasize: u32, poutdata: *mut u8, dwoutdatasize: u32, pdwactualdatasize: *mut u32) -> ::windows::runtime::Result<()> {
1492         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(dwescapecode), ::std::mem::transmute(lpindata), ::std::mem::transmute(cbindatasize), ::std::mem::transmute(poutdata), ::std::mem::transmute(dwoutdatasize), ::std::mem::transmute(pdwactualdatasize)).ok()
1493     }
1494     pub unsafe fn CancelPendingIO(&self) -> ::windows::runtime::Result<()> {
1495         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
1496     }
1497 }
1498 unsafe impl ::windows::runtime::Interface for IWiaItemExtras {
1499     type Vtable = IWiaItemExtras_abi;
1500     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1653731116, 14063, 17714, [135, 106, 142, 19, 37, 147, 119, 141]);
1501 }
1502 impl ::std::convert::From<IWiaItemExtras> for ::windows::runtime::IUnknown {
1503     fn from(value: IWiaItemExtras) -> Self {
1504         unsafe { ::std::mem::transmute(value) }
1505     }
1506 }
1507 impl ::std::convert::From<&IWiaItemExtras> for ::windows::runtime::IUnknown {
1508     fn from(value: &IWiaItemExtras) -> Self {
1509         ::std::convert::From::from(::std::clone::Clone::clone(value))
1510     }
1511 }
1512 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaItemExtras {
1513     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1514         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1515     }
1516 }
1517 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaItemExtras {
1518     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1519         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1520     }
1521 }
1522 #[repr(C)]
1523 #[doc(hidden)]
1524 pub struct IWiaItemExtras_abi(
1525     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1526     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1527     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1528     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrerrortext: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1529     #[cfg(not(feature = "Win32_Foundation"))] usize,
1530     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, dwescapecode: u32, lpindata: *const u8, cbindatasize: u32, poutdata: *mut u8, dwoutdatasize: u32, pdwactualdatasize: *mut u32) -> ::windows::runtime::HRESULT,
1531     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1532 );
1533 #[repr(transparent)]
1534 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1535 pub struct IWiaLog(::windows::runtime::IUnknown);
1536 impl IWiaLog {
1537     pub unsafe fn InitializeLog(&self, hinstance: i32) -> ::windows::runtime::Result<()> {
1538         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(hinstance)).ok()
1539     }
1540     pub unsafe fn hResult(&self, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<()> {
1541         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(hresult)).ok()
1542     }
1543     #[cfg(feature = "Win32_Foundation")]
1544     pub unsafe fn Log<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, lresid: i32, ldetail: i32, bstrtext: Param3) -> ::windows::runtime::Result<()> {
1545         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(lresid), ::std::mem::transmute(ldetail), bstrtext.into_param().abi()).ok()
1546     }
1547 }
1548 unsafe impl ::windows::runtime::Interface for IWiaLog {
1549     type Vtable = IWiaLog_abi;
1550     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2685145270, 33441, 17711, [139, 108, 134, 6, 42, 173, 104, 144]);
1551 }
1552 impl ::std::convert::From<IWiaLog> for ::windows::runtime::IUnknown {
1553     fn from(value: IWiaLog) -> Self {
1554         unsafe { ::std::mem::transmute(value) }
1555     }
1556 }
1557 impl ::std::convert::From<&IWiaLog> for ::windows::runtime::IUnknown {
1558     fn from(value: &IWiaLog) -> Self {
1559         ::std::convert::From::from(::std::clone::Clone::clone(value))
1560     }
1561 }
1562 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaLog {
1563     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1564         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1565     }
1566 }
1567 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaLog {
1568     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1569         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1570     }
1571 }
1572 #[repr(C)]
1573 #[doc(hidden)]
1574 pub struct IWiaLog_abi(
1575     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1576     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1577     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1578     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hinstance: i32) -> ::windows::runtime::HRESULT,
1579     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
1580     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, lresid: i32, ldetail: i32, bstrtext: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1581     #[cfg(not(feature = "Win32_Foundation"))] usize,
1582 );
1583 #[repr(transparent)]
1584 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1585 pub struct IWiaLogEx(::windows::runtime::IUnknown);
1586 impl IWiaLogEx {
1587     pub unsafe fn InitializeLogEx(&self, hinstance: *const u8) -> ::windows::runtime::Result<()> {
1588         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(hinstance)).ok()
1589     }
1590     pub unsafe fn hResult(&self, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<()> {
1591         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(hresult)).ok()
1592     }
1593     #[cfg(feature = "Win32_Foundation")]
1594     pub unsafe fn Log<'a, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, lresid: i32, ldetail: i32, bstrtext: Param3) -> ::windows::runtime::Result<()> {
1595         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(lresid), ::std::mem::transmute(ldetail), bstrtext.into_param().abi()).ok()
1596     }
1597     pub unsafe fn hResultEx(&self, lmethodid: i32, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::Result<()> {
1598         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(lmethodid), ::std::mem::transmute(hresult)).ok()
1599     }
1600     #[cfg(feature = "Win32_Foundation")]
1601     pub unsafe fn LogEx<'a, Param4: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lmethodid: i32, lflags: i32, lresid: i32, ldetail: i32, bstrtext: Param4) -> ::windows::runtime::Result<()> {
1602         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(lmethodid), ::std::mem::transmute(lflags), ::std::mem::transmute(lresid), ::std::mem::transmute(ldetail), bstrtext.into_param().abi()).ok()
1603     }
1604 }
1605 unsafe impl ::windows::runtime::Interface for IWiaLogEx {
1606     type Vtable = IWiaLogEx_abi;
1607     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2938053292, 31296, 18311, [180, 33, 174, 180, 122, 31, 189, 11]);
1608 }
1609 impl ::std::convert::From<IWiaLogEx> for ::windows::runtime::IUnknown {
1610     fn from(value: IWiaLogEx) -> Self {
1611         unsafe { ::std::mem::transmute(value) }
1612     }
1613 }
1614 impl ::std::convert::From<&IWiaLogEx> for ::windows::runtime::IUnknown {
1615     fn from(value: &IWiaLogEx) -> Self {
1616         ::std::convert::From::from(::std::clone::Clone::clone(value))
1617     }
1618 }
1619 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaLogEx {
1620     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1621         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1622     }
1623 }
1624 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaLogEx {
1625     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1626         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1627     }
1628 }
1629 #[repr(C)]
1630 #[doc(hidden)]
1631 pub struct IWiaLogEx_abi(
1632     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1633     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1634     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1635     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hinstance: *const u8) -> ::windows::runtime::HRESULT,
1636     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
1637     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, lresid: i32, ldetail: i32, bstrtext: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1638     #[cfg(not(feature = "Win32_Foundation"))] usize,
1639     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lmethodid: i32, hresult: ::windows::runtime::HRESULT) -> ::windows::runtime::HRESULT,
1640     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lmethodid: i32, lflags: i32, lresid: i32, ldetail: i32, bstrtext: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
1641     #[cfg(not(feature = "Win32_Foundation"))] usize,
1642 );
1643 #[repr(transparent)]
1644 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1645 pub struct IWiaMiniDrv(::windows::runtime::IUnknown);
1646 impl IWiaMiniDrv {
1647     #[cfg(feature = "Win32_Foundation")]
1648     pub unsafe fn drvInitializeWia<'a, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param4: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>, Param5: ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown>>(
1649         &self,
1650         __midl__iwiaminidrv0000: *const u8,
1651         __midl__iwiaminidrv0001: i32,
1652         __midl__iwiaminidrv0002: Param2,
1653         __midl__iwiaminidrv0003: Param3,
1654         __midl__iwiaminidrv0004: Param4,
1655         __midl__iwiaminidrv0005: Param5,
1656         __midl__iwiaminidrv0006: *mut ::std::option::Option<IWiaDrvItem>,
1657         __midl__iwiaminidrv0007: *mut ::std::option::Option<::windows::runtime::IUnknown>,
1658         __midl__iwiaminidrv0008: *mut i32,
1659     ) -> ::windows::runtime::Result<()> {
1660         (::windows::runtime::Interface::vtable(self).3)(
1661             ::std::mem::transmute_copy(self),
1662             ::std::mem::transmute(__midl__iwiaminidrv0000),
1663             ::std::mem::transmute(__midl__iwiaminidrv0001),
1664             __midl__iwiaminidrv0002.into_param().abi(),
1665             __midl__iwiaminidrv0003.into_param().abi(),
1666             __midl__iwiaminidrv0004.into_param().abi(),
1667             __midl__iwiaminidrv0005.into_param().abi(),
1668             ::std::mem::transmute(__midl__iwiaminidrv0006),
1669             ::std::mem::transmute(__midl__iwiaminidrv0007),
1670             ::std::mem::transmute(__midl__iwiaminidrv0008),
1671         )
1672         .ok()
1673     }
1674     #[cfg(feature = "Win32_Foundation")]
1675     pub unsafe fn drvAcquireItemData(&self, __midl__iwiaminidrv0009: *const u8, __midl__iwiaminidrv0010: i32, __midl__iwiaminidrv0011: *mut MINIDRV_TRANSFER_CONTEXT, __midl__iwiaminidrv0012: *mut i32) -> ::windows::runtime::Result<()> {
1676         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0009), ::std::mem::transmute(__midl__iwiaminidrv0010), ::std::mem::transmute(__midl__iwiaminidrv0011), ::std::mem::transmute(__midl__iwiaminidrv0012)).ok()
1677     }
1678     pub unsafe fn drvInitItemProperties(&self, __midl__iwiaminidrv0013: *const u8, __midl__iwiaminidrv0014: i32) -> ::windows::runtime::Result<i32> {
1679         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1680         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0013), ::std::mem::transmute(__midl__iwiaminidrv0014), &mut result__).from_abi::<i32>(result__)
1681     }
1682     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1683     pub unsafe fn drvValidateItemProperties(&self, __midl__iwiaminidrv0016: *const u8, __midl__iwiaminidrv0017: i32, __midl__iwiaminidrv0018: u32, __midl__iwiaminidrv0019: *const super::super::System::Com::StructuredStorage::PROPSPEC) -> ::windows::runtime::Result<i32> {
1684         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1685         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0016), ::std::mem::transmute(__midl__iwiaminidrv0017), ::std::mem::transmute(__midl__iwiaminidrv0018), ::std::mem::transmute(__midl__iwiaminidrv0019), &mut result__).from_abi::<i32>(result__)
1686     }
1687     #[cfg(feature = "Win32_Foundation")]
1688     pub unsafe fn drvWriteItemProperties(&self, __midl__iwiaminidrv0021: *const u8, __midl__iwiaminidrv0022: i32, __midl__iwiaminidrv0023: *const MINIDRV_TRANSFER_CONTEXT) -> ::windows::runtime::Result<i32> {
1689         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1690         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0021), ::std::mem::transmute(__midl__iwiaminidrv0022), ::std::mem::transmute(__midl__iwiaminidrv0023), &mut result__).from_abi::<i32>(result__)
1691     }
1692     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1693     pub unsafe fn drvReadItemProperties(&self, __midl__iwiaminidrv0025: *const u8, __midl__iwiaminidrv0026: i32, __midl__iwiaminidrv0027: u32, __midl__iwiaminidrv0028: *const super::super::System::Com::StructuredStorage::PROPSPEC) -> ::windows::runtime::Result<i32> {
1694         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1695         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0025), ::std::mem::transmute(__midl__iwiaminidrv0026), ::std::mem::transmute(__midl__iwiaminidrv0027), ::std::mem::transmute(__midl__iwiaminidrv0028), &mut result__).from_abi::<i32>(result__)
1696     }
1697     pub unsafe fn drvLockWiaDevice(&self, __midl__iwiaminidrv0030: *const u8, __midl__iwiaminidrv0031: i32) -> ::windows::runtime::Result<i32> {
1698         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1699         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0030), ::std::mem::transmute(__midl__iwiaminidrv0031), &mut result__).from_abi::<i32>(result__)
1700     }
1701     pub unsafe fn drvUnLockWiaDevice(&self, __midl__iwiaminidrv0033: *const u8, __midl__iwiaminidrv0034: i32) -> ::windows::runtime::Result<i32> {
1702         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1703         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0033), ::std::mem::transmute(__midl__iwiaminidrv0034), &mut result__).from_abi::<i32>(result__)
1704     }
1705     pub unsafe fn drvAnalyzeItem(&self, __midl__iwiaminidrv0036: *const u8, __midl__iwiaminidrv0037: i32, __midl__iwiaminidrv0038: *const i32) -> ::windows::runtime::Result<()> {
1706         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0036), ::std::mem::transmute(__midl__iwiaminidrv0037), ::std::mem::transmute(__midl__iwiaminidrv0038)).ok()
1707     }
1708     #[cfg(feature = "Win32_Foundation")]
1709     pub unsafe fn drvGetDeviceErrorStr(&self, __midl__iwiaminidrv0039: i32, __midl__iwiaminidrv0040: i32, __midl__iwiaminidrv0041: *mut super::super::Foundation::PWSTR, __midl__iwiaminidrv0042: *mut i32) -> ::windows::runtime::Result<()> {
1710         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0039), ::std::mem::transmute(__midl__iwiaminidrv0040), ::std::mem::transmute(__midl__iwiaminidrv0041), ::std::mem::transmute(__midl__iwiaminidrv0042)).ok()
1711     }
1712     pub unsafe fn drvDeviceCommand(&self, __midl__iwiaminidrv0043: *const u8, __midl__iwiaminidrv0044: i32, __midl__iwiaminidrv0045: *const ::windows::runtime::GUID, __midl__iwiaminidrv0046: *mut ::std::option::Option<IWiaDrvItem>, __midl__iwiaminidrv0047: *mut i32) -> ::windows::runtime::Result<()> {
1713         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0043), ::std::mem::transmute(__midl__iwiaminidrv0044), ::std::mem::transmute(__midl__iwiaminidrv0045), ::std::mem::transmute(__midl__iwiaminidrv0046), ::std::mem::transmute(__midl__iwiaminidrv0047)).ok()
1714     }
1715     #[cfg(feature = "Win32_Foundation")]
1716     pub unsafe fn drvGetCapabilities(&self, __midl__iwiaminidrv0048: *const u8, __midl__iwiaminidrv0049: i32, __midl__iwiaminidrv0050: *mut i32, __midl__iwiaminidrv0051: *mut *mut WIA_DEV_CAP_DRV, __midl__iwiaminidrv0052: *mut i32) -> ::windows::runtime::Result<()> {
1717         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0048), ::std::mem::transmute(__midl__iwiaminidrv0049), ::std::mem::transmute(__midl__iwiaminidrv0050), ::std::mem::transmute(__midl__iwiaminidrv0051), ::std::mem::transmute(__midl__iwiaminidrv0052)).ok()
1718     }
1719     pub unsafe fn drvDeleteItem(&self, __midl__iwiaminidrv0053: *const u8, __midl__iwiaminidrv0054: i32) -> ::windows::runtime::Result<i32> {
1720         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1721         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0053), ::std::mem::transmute(__midl__iwiaminidrv0054), &mut result__).from_abi::<i32>(result__)
1722     }
1723     pub unsafe fn drvFreeDrvItemContext(&self, __midl__iwiaminidrv0056: i32, __midl__iwiaminidrv0057: *const u8) -> ::windows::runtime::Result<i32> {
1724         let mut result__: <i32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1725         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0056), ::std::mem::transmute(__midl__iwiaminidrv0057), &mut result__).from_abi::<i32>(result__)
1726     }
1727     pub unsafe fn drvGetWiaFormatInfo(&self, __midl__iwiaminidrv0059: *const u8, __midl__iwiaminidrv0060: i32, __midl__iwiaminidrv0061: *mut i32, __midl__iwiaminidrv0062: *mut *mut WIA_FORMAT_INFO, __midl__iwiaminidrv0063: *mut i32) -> ::windows::runtime::Result<()> {
1728         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0059), ::std::mem::transmute(__midl__iwiaminidrv0060), ::std::mem::transmute(__midl__iwiaminidrv0061), ::std::mem::transmute(__midl__iwiaminidrv0062), ::std::mem::transmute(__midl__iwiaminidrv0063)).ok()
1729     }
1730     #[cfg(feature = "Win32_Foundation")]
1731     pub unsafe fn drvNotifyPnpEvent<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, peventguid: *const ::windows::runtime::GUID, bstrdeviceid: Param1, ulreserved: u32) -> ::windows::runtime::Result<()> {
1732         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(peventguid), bstrdeviceid.into_param().abi(), ::std::mem::transmute(ulreserved)).ok()
1733     }
1734     pub unsafe fn drvUnInitializeWia(&self, __midl__iwiaminidrv0064: *const u8) -> ::windows::runtime::Result<()> {
1735         (::windows::runtime::Interface::vtable(self).19)(::std::mem::transmute_copy(self), ::std::mem::transmute(__midl__iwiaminidrv0064)).ok()
1736     }
1737 }
1738 unsafe impl ::windows::runtime::Interface for IWiaMiniDrv {
1739     type Vtable = IWiaMiniDrv_abi;
1740     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3637374484, 15468, 4562, [154, 53, 0, 192, 79, 163, 97, 69]);
1741 }
1742 impl ::std::convert::From<IWiaMiniDrv> for ::windows::runtime::IUnknown {
1743     fn from(value: IWiaMiniDrv) -> Self {
1744         unsafe { ::std::mem::transmute(value) }
1745     }
1746 }
1747 impl ::std::convert::From<&IWiaMiniDrv> for ::windows::runtime::IUnknown {
1748     fn from(value: &IWiaMiniDrv) -> Self {
1749         ::std::convert::From::from(::std::clone::Clone::clone(value))
1750     }
1751 }
1752 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaMiniDrv {
1753     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1754         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1755     }
1756 }
1757 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaMiniDrv {
1758     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1759         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1760     }
1761 }
1762 #[repr(C)]
1763 #[doc(hidden)]
1764 pub struct IWiaMiniDrv_abi(
1765     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1766     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1767     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1768     #[cfg(feature = "Win32_Foundation")]
1769     pub  unsafe extern "system" fn(
1770         this: ::windows::runtime::RawPtr,
1771         __midl__iwiaminidrv0000: *const u8,
1772         __midl__iwiaminidrv0001: i32,
1773         __midl__iwiaminidrv0002: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1774         __midl__iwiaminidrv0003: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
1775         __midl__iwiaminidrv0004: ::windows::runtime::RawPtr,
1776         __midl__iwiaminidrv0005: ::windows::runtime::RawPtr,
1777         __midl__iwiaminidrv0006: *mut ::windows::runtime::RawPtr,
1778         __midl__iwiaminidrv0007: *mut ::windows::runtime::RawPtr,
1779         __midl__iwiaminidrv0008: *mut i32,
1780     ) -> ::windows::runtime::HRESULT,
1781     #[cfg(not(feature = "Win32_Foundation"))] usize,
1782     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0009: *const u8, __midl__iwiaminidrv0010: i32, __midl__iwiaminidrv0011: *mut ::std::mem::ManuallyDrop<MINIDRV_TRANSFER_CONTEXT>, __midl__iwiaminidrv0012: *mut i32) -> ::windows::runtime::HRESULT,
1783     #[cfg(not(feature = "Win32_Foundation"))] usize,
1784     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0013: *const u8, __midl__iwiaminidrv0014: i32, __midl__iwiaminidrv0015: *mut i32) -> ::windows::runtime::HRESULT,
1785     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0016: *const u8, __midl__iwiaminidrv0017: i32, __midl__iwiaminidrv0018: u32, __midl__iwiaminidrv0019: *const super::super::System::Com::StructuredStorage::PROPSPEC, __midl__iwiaminidrv0020: *mut i32) -> ::windows::runtime::HRESULT,
1786     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage")))] usize,
1787     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0021: *const u8, __midl__iwiaminidrv0022: i32, __midl__iwiaminidrv0023: *const ::std::mem::ManuallyDrop<MINIDRV_TRANSFER_CONTEXT>, __midl__iwiaminidrv0024: *mut i32) -> ::windows::runtime::HRESULT,
1788     #[cfg(not(feature = "Win32_Foundation"))] usize,
1789     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0025: *const u8, __midl__iwiaminidrv0026: i32, __midl__iwiaminidrv0027: u32, __midl__iwiaminidrv0028: *const super::super::System::Com::StructuredStorage::PROPSPEC, __midl__iwiaminidrv0029: *mut i32) -> ::windows::runtime::HRESULT,
1790     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage")))] usize,
1791     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0030: *const u8, __midl__iwiaminidrv0031: i32, __midl__iwiaminidrv0032: *mut i32) -> ::windows::runtime::HRESULT,
1792     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0033: *const u8, __midl__iwiaminidrv0034: i32, __midl__iwiaminidrv0035: *mut i32) -> ::windows::runtime::HRESULT,
1793     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0036: *const u8, __midl__iwiaminidrv0037: i32, __midl__iwiaminidrv0038: *const i32) -> ::windows::runtime::HRESULT,
1794     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0039: i32, __midl__iwiaminidrv0040: i32, __midl__iwiaminidrv0041: *mut super::super::Foundation::PWSTR, __midl__iwiaminidrv0042: *mut i32) -> ::windows::runtime::HRESULT,
1795     #[cfg(not(feature = "Win32_Foundation"))] usize,
1796     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0043: *const u8, __midl__iwiaminidrv0044: i32, __midl__iwiaminidrv0045: *const ::windows::runtime::GUID, __midl__iwiaminidrv0046: *mut ::windows::runtime::RawPtr, __midl__iwiaminidrv0047: *mut i32) -> ::windows::runtime::HRESULT,
1797     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0048: *const u8, __midl__iwiaminidrv0049: i32, __midl__iwiaminidrv0050: *mut i32, __midl__iwiaminidrv0051: *mut *mut WIA_DEV_CAP_DRV, __midl__iwiaminidrv0052: *mut i32) -> ::windows::runtime::HRESULT,
1798     #[cfg(not(feature = "Win32_Foundation"))] usize,
1799     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0053: *const u8, __midl__iwiaminidrv0054: i32, __midl__iwiaminidrv0055: *mut i32) -> ::windows::runtime::HRESULT,
1800     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0056: i32, __midl__iwiaminidrv0057: *const u8, __midl__iwiaminidrv0058: *mut i32) -> ::windows::runtime::HRESULT,
1801     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0059: *const u8, __midl__iwiaminidrv0060: i32, __midl__iwiaminidrv0061: *mut i32, __midl__iwiaminidrv0062: *mut *mut WIA_FORMAT_INFO, __midl__iwiaminidrv0063: *mut i32) -> ::windows::runtime::HRESULT,
1802     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, peventguid: *const ::windows::runtime::GUID, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ulreserved: u32) -> ::windows::runtime::HRESULT,
1803     #[cfg(not(feature = "Win32_Foundation"))] usize,
1804     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, __midl__iwiaminidrv0064: *const u8) -> ::windows::runtime::HRESULT,
1805 );
1806 #[repr(transparent)]
1807 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1808 pub struct IWiaMiniDrvCallBack(::windows::runtime::IUnknown);
1809 impl IWiaMiniDrvCallBack {
1810     #[cfg(feature = "Win32_Foundation")]
1811     pub unsafe fn MiniDrvCallback(&self, lreason: i32, lstatus: i32, lpercentcomplete: i32, loffset: i32, llength: i32, ptranctx: *const MINIDRV_TRANSFER_CONTEXT, lreserved: i32) -> ::windows::runtime::Result<()> {
1812         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lreason), ::std::mem::transmute(lstatus), ::std::mem::transmute(lpercentcomplete), ::std::mem::transmute(loffset), ::std::mem::transmute(llength), ::std::mem::transmute(ptranctx), ::std::mem::transmute(lreserved)).ok()
1813     }
1814 }
1815 unsafe impl ::windows::runtime::Interface for IWiaMiniDrvCallBack {
1816     type Vtable = IWiaMiniDrvCallBack_abi;
1817     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(866483546, 15848, 4562, [154, 54, 0, 192, 79, 163, 97, 69]);
1818 }
1819 impl ::std::convert::From<IWiaMiniDrvCallBack> for ::windows::runtime::IUnknown {
1820     fn from(value: IWiaMiniDrvCallBack) -> Self {
1821         unsafe { ::std::mem::transmute(value) }
1822     }
1823 }
1824 impl ::std::convert::From<&IWiaMiniDrvCallBack> for ::windows::runtime::IUnknown {
1825     fn from(value: &IWiaMiniDrvCallBack) -> Self {
1826         ::std::convert::From::from(::std::clone::Clone::clone(value))
1827     }
1828 }
1829 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaMiniDrvCallBack {
1830     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1831         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1832     }
1833 }
1834 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaMiniDrvCallBack {
1835     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1836         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1837     }
1838 }
1839 #[repr(C)]
1840 #[doc(hidden)]
1841 pub struct IWiaMiniDrvCallBack_abi(
1842     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1843     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1844     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1845     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lreason: i32, lstatus: i32, lpercentcomplete: i32, loffset: i32, llength: i32, ptranctx: *const ::std::mem::ManuallyDrop<MINIDRV_TRANSFER_CONTEXT>, lreserved: i32) -> ::windows::runtime::HRESULT,
1846     #[cfg(not(feature = "Win32_Foundation"))] usize,
1847 );
1848 #[repr(transparent)]
1849 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1850 pub struct IWiaMiniDrvTransferCallback(::windows::runtime::IUnknown);
1851 impl IWiaMiniDrvTransferCallback {
1852     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
1853     pub unsafe fn GetNextStream<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstritemname: Param1, bstrfullitemname: Param2) -> ::windows::runtime::Result<super::super::System::Com::IStream> {
1854         let mut result__: <super::super::System::Com::IStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
1855         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstritemname.into_param().abi(), bstrfullitemname.into_param().abi(), &mut result__).from_abi::<super::super::System::Com::IStream>(result__)
1856     }
1857     pub unsafe fn SendMessage(&self, lflags: i32, pwiatransferparams: *const WiaTransferParams) -> ::windows::runtime::Result<()> {
1858         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(pwiatransferparams)).ok()
1859     }
1860 }
1861 unsafe impl ::windows::runtime::Interface for IWiaMiniDrvTransferCallback {
1862     type Vtable = IWiaMiniDrvTransferCallback_abi;
1863     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2849173129, 11493, 20464, [138, 219, 201, 97, 209, 215, 116, 202]);
1864 }
1865 impl ::std::convert::From<IWiaMiniDrvTransferCallback> for ::windows::runtime::IUnknown {
1866     fn from(value: IWiaMiniDrvTransferCallback) -> Self {
1867         unsafe { ::std::mem::transmute(value) }
1868     }
1869 }
1870 impl ::std::convert::From<&IWiaMiniDrvTransferCallback> for ::windows::runtime::IUnknown {
1871     fn from(value: &IWiaMiniDrvTransferCallback) -> Self {
1872         ::std::convert::From::from(::std::clone::Clone::clone(value))
1873     }
1874 }
1875 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaMiniDrvTransferCallback {
1876     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1877         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1878     }
1879 }
1880 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaMiniDrvTransferCallback {
1881     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1882         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1883     }
1884 }
1885 #[repr(C)]
1886 #[doc(hidden)]
1887 pub struct IWiaMiniDrvTransferCallback_abi(
1888     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1889     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1890     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1891     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstritemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppistream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1892     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com")))] usize,
1893     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiatransferparams: *const WiaTransferParams) -> ::windows::runtime::HRESULT,
1894 );
1895 #[repr(transparent)]
1896 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1897 pub struct IWiaNotifyDevMgr(::windows::runtime::IUnknown);
1898 impl IWiaNotifyDevMgr {
1899     pub unsafe fn NewDeviceArrival(&self) -> ::windows::runtime::Result<()> {
1900         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self)).ok()
1901     }
1902 }
1903 unsafe impl ::windows::runtime::Interface for IWiaNotifyDevMgr {
1904     type Vtable = IWiaNotifyDevMgr_abi;
1905     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1885871776, 59327, 17041, [159, 177, 78, 136, 19, 163, 247, 142]);
1906 }
1907 impl ::std::convert::From<IWiaNotifyDevMgr> for ::windows::runtime::IUnknown {
1908     fn from(value: IWiaNotifyDevMgr) -> Self {
1909         unsafe { ::std::mem::transmute(value) }
1910     }
1911 }
1912 impl ::std::convert::From<&IWiaNotifyDevMgr> for ::windows::runtime::IUnknown {
1913     fn from(value: &IWiaNotifyDevMgr) -> Self {
1914         ::std::convert::From::from(::std::clone::Clone::clone(value))
1915     }
1916 }
1917 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaNotifyDevMgr {
1918     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1919         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1920     }
1921 }
1922 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaNotifyDevMgr {
1923     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1924         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1925     }
1926 }
1927 #[repr(C)]
1928 #[doc(hidden)]
1929 pub struct IWiaNotifyDevMgr_abi(
1930     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1931     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1932     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1933     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1934 );
1935 #[repr(transparent)]
1936 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1937 pub struct IWiaPreview(::windows::runtime::IUnknown);
1938 impl IWiaPreview {
1939     pub unsafe fn GetNewPreview<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaItem2>, Param2: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, lflags: i32, pwiaitem2: Param1, pwiatransfercallback: Param2) -> ::windows::runtime::Result<()> {
1940         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pwiaitem2.into_param().abi(), pwiatransfercallback.into_param().abi()).ok()
1941     }
1942     pub unsafe fn UpdatePreview<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaItem2>, Param2: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, lflags: i32, pchildwiaitem2: Param1, pwiatransfercallback: Param2) -> ::windows::runtime::Result<()> {
1943         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pchildwiaitem2.into_param().abi(), pwiatransfercallback.into_param().abi()).ok()
1944     }
1945     pub unsafe fn DetectRegions(&self, lflags: i32) -> ::windows::runtime::Result<()> {
1946         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags)).ok()
1947     }
1948     pub unsafe fn Clear(&self) -> ::windows::runtime::Result<()> {
1949         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self)).ok()
1950     }
1951 }
1952 unsafe impl ::windows::runtime::Interface for IWiaPreview {
1953     type Vtable = IWiaPreview_abi;
1954     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2512565501, 13298, 19846, [173, 64, 148, 49, 240, 223, 8, 247]);
1955 }
1956 impl ::std::convert::From<IWiaPreview> for ::windows::runtime::IUnknown {
1957     fn from(value: IWiaPreview) -> Self {
1958         unsafe { ::std::mem::transmute(value) }
1959     }
1960 }
1961 impl ::std::convert::From<&IWiaPreview> for ::windows::runtime::IUnknown {
1962     fn from(value: &IWiaPreview) -> Self {
1963         ::std::convert::From::from(::std::clone::Clone::clone(value))
1964     }
1965 }
1966 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaPreview {
1967     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1968         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
1969     }
1970 }
1971 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaPreview {
1972     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
1973         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
1974     }
1975 }
1976 #[repr(C)]
1977 #[doc(hidden)]
1978 pub struct IWiaPreview_abi(
1979     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1980     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1981     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
1982     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiaitem2: ::windows::runtime::RawPtr, pwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1983     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pchildwiaitem2: ::windows::runtime::RawPtr, pwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1984     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32) -> ::windows::runtime::HRESULT,
1985     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
1986 );
1987 #[repr(transparent)]
1988 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
1989 pub struct IWiaPropertyStorage(::windows::runtime::IUnknown);
1990 impl IWiaPropertyStorage {
1991     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))]
1992     pub unsafe fn ReadMultiple(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::runtime::Result<()> {
1993         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpspec), ::std::mem::transmute(rgpspec), ::std::mem::transmute(rgpropvar)).ok()
1994     }
1995     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))]
1996     pub unsafe fn WriteMultiple(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: *const super::super::System::Com::StructuredStorage::PROPVARIANT, propidnamefirst: u32) -> ::windows::runtime::Result<()> {
1997         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpspec), ::std::mem::transmute(rgpspec), ::std::mem::transmute(rgpropvar), ::std::mem::transmute(propidnamefirst)).ok()
1998     }
1999     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2000     pub unsafe fn DeleteMultiple(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC) -> ::windows::runtime::Result<()> {
2001         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpspec), ::std::mem::transmute(rgpspec)).ok()
2002     }
2003     #[cfg(feature = "Win32_Foundation")]
2004     pub unsafe fn ReadPropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::Result<()> {
2005         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpropid), ::std::mem::transmute(rgpropid), ::std::mem::transmute(rglpwstrname)).ok()
2006     }
2007     #[cfg(feature = "Win32_Foundation")]
2008     pub unsafe fn WritePropertyNames(&self, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const super::super::Foundation::PWSTR) -> ::windows::runtime::Result<()> {
2009         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpropid), ::std::mem::transmute(rgpropid), ::std::mem::transmute(rglpwstrname)).ok()
2010     }
2011     pub unsafe fn DeletePropertyNames(&self, cpropid: u32, rgpropid: *const u32) -> ::windows::runtime::Result<()> {
2012         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpropid), ::std::mem::transmute(rgpropid)).ok()
2013     }
2014     pub unsafe fn Commit(&self, grfcommitflags: u32) -> ::windows::runtime::Result<()> {
2015         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), ::std::mem::transmute(grfcommitflags)).ok()
2016     }
2017     pub unsafe fn Revert(&self) -> ::windows::runtime::Result<()> {
2018         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
2019     }
2020     #[cfg(feature = "Win32_System_Com_StructuredStorage")]
2021     pub unsafe fn Enum(&self) -> ::windows::runtime::Result<super::super::System::Com::StructuredStorage::IEnumSTATPROPSTG> {
2022         let mut result__: <super::super::System::Com::StructuredStorage::IEnumSTATPROPSTG as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2023         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::StructuredStorage::IEnumSTATPROPSTG>(result__)
2024     }
2025     #[cfg(feature = "Win32_Foundation")]
2026     pub unsafe fn SetTimes(&self, pctime: *const super::super::Foundation::FILETIME, patime: *const super::super::Foundation::FILETIME, pmtime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::Result<()> {
2027         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self), ::std::mem::transmute(pctime), ::std::mem::transmute(patime), ::std::mem::transmute(pmtime)).ok()
2028     }
2029     pub unsafe fn SetClass(&self, clsid: *const ::windows::runtime::GUID) -> ::windows::runtime::Result<()> {
2030         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), ::std::mem::transmute(clsid)).ok()
2031     }
2032     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2033     pub unsafe fn Stat(&self) -> ::windows::runtime::Result<super::super::System::Com::StructuredStorage::STATPROPSETSTG> {
2034         let mut result__: <super::super::System::Com::StructuredStorage::STATPROPSETSTG as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2035         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::System::Com::StructuredStorage::STATPROPSETSTG>(result__)
2036     }
2037     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))]
2038     pub unsafe fn GetPropertyAttributes(&self, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgflags: *mut u32, rgpropvar: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::runtime::Result<()> {
2039         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), ::std::mem::transmute(cpspec), ::std::mem::transmute(rgpspec), ::std::mem::transmute(rgflags), ::std::mem::transmute(rgpropvar)).ok()
2040     }
2041     pub unsafe fn GetCount(&self) -> ::windows::runtime::Result<u32> {
2042         let mut result__: <u32 as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2043         (::windows::runtime::Interface::vtable(self).16)(::std::mem::transmute_copy(self), &mut result__).from_abi::<u32>(result__)
2044     }
2045     #[cfg(feature = "Win32_System_Com")]
2046     pub unsafe fn GetPropertyStream(&self, pcompatibilityid: *mut ::windows::runtime::GUID, ppistream: *mut ::std::option::Option<super::super::System::Com::IStream>) -> ::windows::runtime::Result<()> {
2047         (::windows::runtime::Interface::vtable(self).17)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcompatibilityid), ::std::mem::transmute(ppistream)).ok()
2048     }
2049     #[cfg(feature = "Win32_System_Com")]
2050     pub unsafe fn SetPropertyStream<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::IStream>>(&self, pcompatibilityid: *mut ::windows::runtime::GUID, pistream: Param1) -> ::windows::runtime::Result<()> {
2051         (::windows::runtime::Interface::vtable(self).18)(::std::mem::transmute_copy(self), ::std::mem::transmute(pcompatibilityid), pistream.into_param().abi()).ok()
2052     }
2053 }
2054 unsafe impl ::windows::runtime::Interface for IWiaPropertyStorage {
2055     type Vtable = IWiaPropertyStorage_abi;
2056     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2562058400, 10700, 18714, [170, 192, 230, 219, 79, 220, 206, 182]);
2057 }
2058 impl ::std::convert::From<IWiaPropertyStorage> for ::windows::runtime::IUnknown {
2059     fn from(value: IWiaPropertyStorage) -> Self {
2060         unsafe { ::std::mem::transmute(value) }
2061     }
2062 }
2063 impl ::std::convert::From<&IWiaPropertyStorage> for ::windows::runtime::IUnknown {
2064     fn from(value: &IWiaPropertyStorage) -> Self {
2065         ::std::convert::From::from(::std::clone::Clone::clone(value))
2066     }
2067 }
2068 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaPropertyStorage {
2069     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2070         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2071     }
2072 }
2073 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaPropertyStorage {
2074     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2075         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2076     }
2077 }
2078 #[repr(C)]
2079 #[doc(hidden)]
2080 pub struct IWiaPropertyStorage_abi(
2081     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2082     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2083     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2084     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::StructuredStorage::PROPVARIANT>) -> ::windows::runtime::HRESULT,
2085     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation")))] usize,
2086     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgpropvar: *const ::std::mem::ManuallyDrop<super::super::System::Com::StructuredStorage::PROPVARIANT>, propidnamefirst: u32) -> ::windows::runtime::HRESULT,
2087     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation")))] usize,
2088     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC) -> ::windows::runtime::HRESULT,
2089     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage")))] usize,
2090     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpropid: u32, rgpropid: *const u32, rglpwstrname: *mut super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2091     #[cfg(not(feature = "Win32_Foundation"))] usize,
2092     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpropid: u32, rgpropid: *const u32, rglpwstrname: *const super::super::Foundation::PWSTR) -> ::windows::runtime::HRESULT,
2093     #[cfg(not(feature = "Win32_Foundation"))] usize,
2094     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpropid: u32, rgpropid: *const u32) -> ::windows::runtime::HRESULT,
2095     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, grfcommitflags: u32) -> ::windows::runtime::HRESULT,
2096     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2097     #[cfg(feature = "Win32_System_Com_StructuredStorage")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2098     #[cfg(not(feature = "Win32_System_Com_StructuredStorage"))] usize,
2099     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pctime: *const super::super::Foundation::FILETIME, patime: *const super::super::Foundation::FILETIME, pmtime: *const super::super::Foundation::FILETIME) -> ::windows::runtime::HRESULT,
2100     #[cfg(not(feature = "Win32_Foundation"))] usize,
2101     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, clsid: *const ::windows::runtime::GUID) -> ::windows::runtime::HRESULT,
2102     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstatpsstg: *mut super::super::System::Com::StructuredStorage::STATPROPSETSTG) -> ::windows::runtime::HRESULT,
2103     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage")))] usize,
2104     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, cpspec: u32, rgpspec: *const super::super::System::Com::StructuredStorage::PROPSPEC, rgflags: *mut u32, rgpropvar: *mut ::std::mem::ManuallyDrop<super::super::System::Com::StructuredStorage::PROPVARIANT>) -> ::windows::runtime::HRESULT,
2105     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole_Automation")))] usize,
2106     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pulnumprops: *mut u32) -> ::windows::runtime::HRESULT,
2107     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcompatibilityid: *mut ::windows::runtime::GUID, ppistream: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2108     #[cfg(not(feature = "Win32_System_Com"))] usize,
2109     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pcompatibilityid: *mut ::windows::runtime::GUID, pistream: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2110     #[cfg(not(feature = "Win32_System_Com"))] usize,
2111 );
2112 #[repr(transparent)]
2113 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2114 pub struct IWiaSegmentationFilter(::windows::runtime::IUnknown);
2115 impl IWiaSegmentationFilter {
2116     #[cfg(feature = "Win32_System_Com")]
2117     pub unsafe fn DetectRegions<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::IStream>, Param2: ::windows::runtime::IntoParam<'a, IWiaItem2>>(&self, lflags: i32, pinputstream: Param1, pwiaitem2: Param2) -> ::windows::runtime::Result<()> {
2118         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), pinputstream.into_param().abi(), pwiaitem2.into_param().abi()).ok()
2119     }
2120 }
2121 unsafe impl ::windows::runtime::Interface for IWiaSegmentationFilter {
2122     type Vtable = IWiaSegmentationFilter_abi;
2123     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3964053143, 44036, 17479, [143, 101, 255, 99, 213, 21, 75, 33]);
2124 }
2125 impl ::std::convert::From<IWiaSegmentationFilter> for ::windows::runtime::IUnknown {
2126     fn from(value: IWiaSegmentationFilter) -> Self {
2127         unsafe { ::std::mem::transmute(value) }
2128     }
2129 }
2130 impl ::std::convert::From<&IWiaSegmentationFilter> for ::windows::runtime::IUnknown {
2131     fn from(value: &IWiaSegmentationFilter) -> Self {
2132         ::std::convert::From::from(::std::clone::Clone::clone(value))
2133     }
2134 }
2135 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaSegmentationFilter {
2136     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2137         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2138     }
2139 }
2140 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaSegmentationFilter {
2141     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2142         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2143     }
2144 }
2145 #[repr(C)]
2146 #[doc(hidden)]
2147 pub struct IWiaSegmentationFilter_abi(
2148     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2149     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2150     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2151     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pinputstream: ::windows::runtime::RawPtr, pwiaitem2: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2152     #[cfg(not(feature = "Win32_System_Com"))] usize,
2153 );
2154 #[repr(transparent)]
2155 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2156 pub struct IWiaTransfer(::windows::runtime::IUnknown);
2157 impl IWiaTransfer {
2158     pub unsafe fn Download<'a, Param1: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, lflags: i32, piwiatransfercallback: Param1) -> ::windows::runtime::Result<()> {
2159         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), piwiatransfercallback.into_param().abi()).ok()
2160     }
2161     #[cfg(feature = "Win32_System_Com")]
2162     pub unsafe fn Upload<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::System::Com::IStream>, Param2: ::windows::runtime::IntoParam<'a, IWiaTransferCallback>>(&self, lflags: i32, psource: Param1, piwiatransfercallback: Param2) -> ::windows::runtime::Result<()> {
2163         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), psource.into_param().abi(), piwiatransfercallback.into_param().abi()).ok()
2164     }
2165     pub unsafe fn Cancel(&self) -> ::windows::runtime::Result<()> {
2166         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self)).ok()
2167     }
2168     pub unsafe fn EnumWIA_FORMAT_INFO(&self) -> ::windows::runtime::Result<IEnumWIA_FORMAT_INFO> {
2169         let mut result__: <IEnumWIA_FORMAT_INFO as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2170         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), &mut result__).from_abi::<IEnumWIA_FORMAT_INFO>(result__)
2171     }
2172 }
2173 unsafe impl ::windows::runtime::Interface for IWiaTransfer {
2174     type Vtable = IWiaTransfer_abi;
2175     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3281873218, 12110, 19716, [146, 254, 78, 244, 211, 161, 222, 90]);
2176 }
2177 impl ::std::convert::From<IWiaTransfer> for ::windows::runtime::IUnknown {
2178     fn from(value: IWiaTransfer) -> Self {
2179         unsafe { ::std::mem::transmute(value) }
2180     }
2181 }
2182 impl ::std::convert::From<&IWiaTransfer> for ::windows::runtime::IUnknown {
2183     fn from(value: &IWiaTransfer) -> Self {
2184         ::std::convert::From::from(::std::clone::Clone::clone(value))
2185     }
2186 }
2187 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaTransfer {
2188     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2189         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2190     }
2191 }
2192 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaTransfer {
2193     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2194         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2195     }
2196 }
2197 #[repr(C)]
2198 #[doc(hidden)]
2199 pub struct IWiaTransfer_abi(
2200     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2201     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2202     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2203     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, piwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2204     #[cfg(feature = "Win32_System_Com")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, psource: ::windows::runtime::RawPtr, piwiatransfercallback: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2205     #[cfg(not(feature = "Win32_System_Com"))] usize,
2206     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2207     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, ppenum: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2208 );
2209 #[repr(transparent)]
2210 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2211 pub struct IWiaTransferCallback(::windows::runtime::IUnknown);
2212 impl IWiaTransferCallback {
2213     pub unsafe fn TransferCallback(&self, lflags: i32, pwiatransferparams: *const WiaTransferParams) -> ::windows::runtime::Result<()> {
2214         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), ::std::mem::transmute(pwiatransferparams)).ok()
2215     }
2216     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2217     pub unsafe fn GetNextStream<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, lflags: i32, bstritemname: Param1, bstrfullitemname: Param2) -> ::windows::runtime::Result<super::super::System::Com::IStream> {
2218         let mut result__: <super::super::System::Com::IStream as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2219         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), ::std::mem::transmute(lflags), bstritemname.into_param().abi(), bstrfullitemname.into_param().abi(), &mut result__).from_abi::<super::super::System::Com::IStream>(result__)
2220     }
2221 }
2222 unsafe impl ::windows::runtime::Interface for IWiaTransferCallback {
2223     type Vtable = IWiaTransferCallback_abi;
2224     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(668265135, 10406, 19621, [154, 171, 230, 120, 22, 139, 149, 39]);
2225 }
2226 impl ::std::convert::From<IWiaTransferCallback> for ::windows::runtime::IUnknown {
2227     fn from(value: IWiaTransferCallback) -> Self {
2228         unsafe { ::std::mem::transmute(value) }
2229     }
2230 }
2231 impl ::std::convert::From<&IWiaTransferCallback> for ::windows::runtime::IUnknown {
2232     fn from(value: &IWiaTransferCallback) -> Self {
2233         ::std::convert::From::from(::std::clone::Clone::clone(value))
2234     }
2235 }
2236 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaTransferCallback {
2237     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2238         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2239     }
2240 }
2241 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaTransferCallback {
2242     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2243         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2244     }
2245 }
2246 #[repr(C)]
2247 #[doc(hidden)]
2248 pub struct IWiaTransferCallback_abi(
2249     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2250     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2251     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2252     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, pwiatransferparams: *const WiaTransferParams) -> ::windows::runtime::HRESULT,
2253     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, lflags: i32, bstritemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, bstrfullitemname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, ppdestination: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2254     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_System_Com")))] usize,
2255 );
2256 #[repr(transparent)]
2257 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2258 pub struct IWiaUIExtension(::windows::runtime::IUnknown);
2259 impl IWiaUIExtension {
2260     #[cfg(feature = "Win32_Foundation")]
2261     pub unsafe fn DeviceDialog(&self, pdevicedialogdata: *const DEVICEDIALOGDATA) -> ::windows::runtime::Result<()> {
2262         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdevicedialogdata)).ok()
2263     }
2264     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
2265     pub unsafe fn GetDeviceIcon<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdeviceid: Param0, phicon: *mut super::super::UI::WindowsAndMessaging::HICON, nsize: u32) -> ::windows::runtime::Result<()> {
2266         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), bstrdeviceid.into_param().abi(), ::std::mem::transmute(phicon), ::std::mem::transmute(nsize)).ok()
2267     }
2268     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
2269     pub unsafe fn GetDeviceBitmapLogo<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdeviceid: Param0, phbitmap: *mut super::super::Graphics::Gdi::HBITMAP, nmaxwidth: u32, nmaxheight: u32) -> ::windows::runtime::Result<()> {
2270         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), bstrdeviceid.into_param().abi(), ::std::mem::transmute(phbitmap), ::std::mem::transmute(nmaxwidth), ::std::mem::transmute(nmaxheight)).ok()
2271     }
2272 }
2273 unsafe impl ::windows::runtime::Interface for IWiaUIExtension {
2274     type Vtable = IWiaUIExtension_abi;
2275     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3660681491, 20718, 19584, [180, 96, 87, 208, 5, 212, 74, 44]);
2276 }
2277 impl ::std::convert::From<IWiaUIExtension> for ::windows::runtime::IUnknown {
2278     fn from(value: IWiaUIExtension) -> Self {
2279         unsafe { ::std::mem::transmute(value) }
2280     }
2281 }
2282 impl ::std::convert::From<&IWiaUIExtension> for ::windows::runtime::IUnknown {
2283     fn from(value: &IWiaUIExtension) -> Self {
2284         ::std::convert::From::from(::std::clone::Clone::clone(value))
2285     }
2286 }
2287 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaUIExtension {
2288     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2289         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2290     }
2291 }
2292 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaUIExtension {
2293     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2294         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2295     }
2296 }
2297 #[repr(C)]
2298 #[doc(hidden)]
2299 pub struct IWiaUIExtension_abi(
2300     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2301     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2302     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2303     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevicedialogdata: *const ::std::mem::ManuallyDrop<DEVICEDIALOGDATA>) -> ::windows::runtime::HRESULT,
2304     #[cfg(not(feature = "Win32_Foundation"))] usize,
2305     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, phicon: *mut super::super::UI::WindowsAndMessaging::HICON, nsize: u32) -> ::windows::runtime::HRESULT,
2306     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging")))] usize,
2307     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, phbitmap: *mut super::super::Graphics::Gdi::HBITMAP, nmaxwidth: u32, nmaxheight: u32) -> ::windows::runtime::HRESULT,
2308     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi")))] usize,
2309 );
2310 #[repr(transparent)]
2311 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2312 pub struct IWiaUIExtension2(::windows::runtime::IUnknown);
2313 impl IWiaUIExtension2 {
2314     #[cfg(feature = "Win32_Foundation")]
2315     pub unsafe fn DeviceDialog(&self, pdevicedialogdata: *const DEVICEDIALOGDATA2) -> ::windows::runtime::Result<()> {
2316         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), ::std::mem::transmute(pdevicedialogdata)).ok()
2317     }
2318     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
2319     pub unsafe fn GetDeviceIcon<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrdeviceid: Param0, phicon: *mut super::super::UI::WindowsAndMessaging::HICON, nsize: u32) -> ::windows::runtime::Result<()> {
2320         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), bstrdeviceid.into_param().abi(), ::std::mem::transmute(phicon), ::std::mem::transmute(nsize)).ok()
2321     }
2322 }
2323 unsafe impl ::windows::runtime::Interface for IWiaUIExtension2 {
2324     type Vtable = IWiaUIExtension2_abi;
2325     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(810942679, 20616, 18135, [154, 21, 183, 123, 9, 205, 186, 122]);
2326 }
2327 impl ::std::convert::From<IWiaUIExtension2> for ::windows::runtime::IUnknown {
2328     fn from(value: IWiaUIExtension2) -> Self {
2329         unsafe { ::std::mem::transmute(value) }
2330     }
2331 }
2332 impl ::std::convert::From<&IWiaUIExtension2> for ::windows::runtime::IUnknown {
2333     fn from(value: &IWiaUIExtension2) -> Self {
2334         ::std::convert::From::from(::std::clone::Clone::clone(value))
2335     }
2336 }
2337 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaUIExtension2 {
2338     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2339         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2340     }
2341 }
2342 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaUIExtension2 {
2343     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2344         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2345     }
2346 }
2347 #[repr(C)]
2348 #[doc(hidden)]
2349 pub struct IWiaUIExtension2_abi(
2350     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2351     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2352     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2353     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pdevicedialogdata: *const ::std::mem::ManuallyDrop<DEVICEDIALOGDATA2>) -> ::windows::runtime::HRESULT,
2354     #[cfg(not(feature = "Win32_Foundation"))] usize,
2355     #[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrdeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, phicon: *mut super::super::UI::WindowsAndMessaging::HICON, nsize: u32) -> ::windows::runtime::HRESULT,
2356     #[cfg(not(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging")))] usize,
2357 );
2358 #[repr(transparent)]
2359 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: clone :: Clone, :: std :: fmt :: Debug)]
2360 pub struct IWiaVideo(::windows::runtime::IUnknown);
2361 impl IWiaVideo {
2362     #[cfg(feature = "Win32_Foundation")]
2363     pub unsafe fn PreviewVisible(&self) -> ::windows::runtime::Result<super::super::Foundation::BOOL> {
2364         let mut result__: <super::super::Foundation::BOOL as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2365         (::windows::runtime::Interface::vtable(self).3)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BOOL>(result__)
2366     }
2367     #[cfg(feature = "Win32_Foundation")]
2368     pub unsafe fn SetPreviewVisible<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bpreviewvisible: Param0) -> ::windows::runtime::Result<()> {
2369         (::windows::runtime::Interface::vtable(self).4)(::std::mem::transmute_copy(self), bpreviewvisible.into_param().abi()).ok()
2370     }
2371     #[cfg(feature = "Win32_Foundation")]
2372     pub unsafe fn ImagesDirectory(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2373         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2374         (::windows::runtime::Interface::vtable(self).5)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2375     }
2376     #[cfg(feature = "Win32_Foundation")]
2377     pub unsafe fn SetImagesDirectory<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>>(&self, bstrimagedirectory: Param0) -> ::windows::runtime::Result<()> {
2378         (::windows::runtime::Interface::vtable(self).6)(::std::mem::transmute_copy(self), bstrimagedirectory.into_param().abi()).ok()
2379     }
2380     #[cfg(feature = "Win32_Foundation")]
2381     pub unsafe fn CreateVideoByWiaDevID<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bstrwiadeviceid: Param0, hwndparent: Param1, bstretchtofitparent: Param2, bautobeginplayback: Param3) -> ::windows::runtime::Result<()> {
2382         (::windows::runtime::Interface::vtable(self).7)(::std::mem::transmute_copy(self), bstrwiadeviceid.into_param().abi(), hwndparent.into_param().abi(), bstretchtofitparent.into_param().abi(), bautobeginplayback.into_param().abi()).ok()
2383     }
2384     #[cfg(feature = "Win32_Foundation")]
2385     pub unsafe fn CreateVideoByDevNum<'a, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, uidevicenumber: u32, hwndparent: Param1, bstretchtofitparent: Param2, bautobeginplayback: Param3) -> ::windows::runtime::Result<()> {
2386         (::windows::runtime::Interface::vtable(self).8)(::std::mem::transmute_copy(self), ::std::mem::transmute(uidevicenumber), hwndparent.into_param().abi(), bstretchtofitparent.into_param().abi(), bautobeginplayback.into_param().abi()).ok()
2387     }
2388     #[cfg(feature = "Win32_Foundation")]
2389     pub unsafe fn CreateVideoByName<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BSTR>, Param1: ::windows::runtime::IntoParam<'a, super::super::Foundation::HWND>, Param2: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>, Param3: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bstrfriendlyname: Param0, hwndparent: Param1, bstretchtofitparent: Param2, bautobeginplayback: Param3) -> ::windows::runtime::Result<()> {
2390         (::windows::runtime::Interface::vtable(self).9)(::std::mem::transmute_copy(self), bstrfriendlyname.into_param().abi(), hwndparent.into_param().abi(), bstretchtofitparent.into_param().abi(), bautobeginplayback.into_param().abi()).ok()
2391     }
2392     pub unsafe fn DestroyVideo(&self) -> ::windows::runtime::Result<()> {
2393         (::windows::runtime::Interface::vtable(self).10)(::std::mem::transmute_copy(self)).ok()
2394     }
2395     pub unsafe fn Play(&self) -> ::windows::runtime::Result<()> {
2396         (::windows::runtime::Interface::vtable(self).11)(::std::mem::transmute_copy(self)).ok()
2397     }
2398     pub unsafe fn Pause(&self) -> ::windows::runtime::Result<()> {
2399         (::windows::runtime::Interface::vtable(self).12)(::std::mem::transmute_copy(self)).ok()
2400     }
2401     #[cfg(feature = "Win32_Foundation")]
2402     pub unsafe fn TakePicture(&self) -> ::windows::runtime::Result<super::super::Foundation::BSTR> {
2403         let mut result__: <super::super::Foundation::BSTR as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2404         (::windows::runtime::Interface::vtable(self).13)(::std::mem::transmute_copy(self), &mut result__).from_abi::<super::super::Foundation::BSTR>(result__)
2405     }
2406     #[cfg(feature = "Win32_Foundation")]
2407     pub unsafe fn ResizeVideo<'a, Param0: ::windows::runtime::IntoParam<'a, super::super::Foundation::BOOL>>(&self, bstretchtofitparent: Param0) -> ::windows::runtime::Result<()> {
2408         (::windows::runtime::Interface::vtable(self).14)(::std::mem::transmute_copy(self), bstretchtofitparent.into_param().abi()).ok()
2409     }
2410     pub unsafe fn GetCurrentState(&self) -> ::windows::runtime::Result<WIAVIDEO_STATE> {
2411         let mut result__: <WIAVIDEO_STATE as ::windows::runtime::Abi>::Abi = ::std::mem::zeroed();
2412         (::windows::runtime::Interface::vtable(self).15)(::std::mem::transmute_copy(self), &mut result__).from_abi::<WIAVIDEO_STATE>(result__)
2413     }
2414 }
2415 unsafe impl ::windows::runtime::Interface for IWiaVideo {
2416     type Vtable = IWiaVideo_abi;
2417     const IID: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3576242346, 56200, 16880, [148, 108, 224, 13, 192, 161, 156, 250]);
2418 }
2419 impl ::std::convert::From<IWiaVideo> for ::windows::runtime::IUnknown {
2420     fn from(value: IWiaVideo) -> Self {
2421         unsafe { ::std::mem::transmute(value) }
2422     }
2423 }
2424 impl ::std::convert::From<&IWiaVideo> for ::windows::runtime::IUnknown {
2425     fn from(value: &IWiaVideo) -> Self {
2426         ::std::convert::From::from(::std::clone::Clone::clone(value))
2427     }
2428 }
2429 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for IWiaVideo {
2430     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2431         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(self))
2432     }
2433 }
2434 impl<'a> ::windows::runtime::IntoParam<'a, ::windows::runtime::IUnknown> for &IWiaVideo {
2435     fn into_param(self) -> ::windows::runtime::Param<'a, ::windows::runtime::IUnknown> {
2436         ::windows::runtime::Param::Owned(::std::convert::Into::<::windows::runtime::IUnknown>::into(::std::clone::Clone::clone(self)))
2437     }
2438 }
2439 #[repr(C)]
2440 #[doc(hidden)]
2441 pub struct IWiaVideo_abi(
2442     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, iid: &::windows::runtime::GUID, interface: *mut ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2443     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2444     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> u32,
2445     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbpreviewvisible: *mut super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2446     #[cfg(not(feature = "Win32_Foundation"))] usize,
2447     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bpreviewvisible: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2448     #[cfg(not(feature = "Win32_Foundation"))] usize,
2449     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrimagedirectory: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2450     #[cfg(not(feature = "Win32_Foundation"))] usize,
2451     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrimagedirectory: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2452     #[cfg(not(feature = "Win32_Foundation"))] usize,
2453     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrwiadeviceid: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, hwndparent: super::super::Foundation::HWND, bstretchtofitparent: super::super::Foundation::BOOL, bautobeginplayback: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2454     #[cfg(not(feature = "Win32_Foundation"))] usize,
2455     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, uidevicenumber: u32, hwndparent: super::super::Foundation::HWND, bstretchtofitparent: super::super::Foundation::BOOL, bautobeginplayback: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2456     #[cfg(not(feature = "Win32_Foundation"))] usize,
2457     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstrfriendlyname: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>, hwndparent: super::super::Foundation::HWND, bstretchtofitparent: super::super::Foundation::BOOL, bautobeginplayback: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2458     #[cfg(not(feature = "Win32_Foundation"))] usize,
2459     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2460     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2461     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr) -> ::windows::runtime::HRESULT,
2462     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pbstrnewimagefilename: *mut ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>) -> ::windows::runtime::HRESULT,
2463     #[cfg(not(feature = "Win32_Foundation"))] usize,
2464     #[cfg(feature = "Win32_Foundation")] pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, bstretchtofitparent: super::super::Foundation::BOOL) -> ::windows::runtime::HRESULT,
2465     #[cfg(not(feature = "Win32_Foundation"))] usize,
2466     pub unsafe extern "system" fn(this: ::windows::runtime::RawPtr, pstate: *mut WIAVIDEO_STATE) -> ::windows::runtime::HRESULT,
2467 );
2468 pub const LAMP_ERR: u32 = 2048u32;
2469 pub const LANDSCAPE: u32 = 1u32;
2470 pub const LANSCAPE: u32 = 1u32;
2471 pub const LEFT_JUSTIFIED: u32 = 0u32;
2472 pub const LIGHT_SOURCE_DETECT_READY: u32 = 4u32;
2473 pub const LIGHT_SOURCE_NEGATIVE: u32 = 4u32;
2474 pub const LIGHT_SOURCE_POSITIVE: u32 = 2u32;
2475 pub const LIGHT_SOURCE_PRESENT: u32 = 2u32;
2476 pub const LIGHT_SOURCE_PRESENT_DETECT: u32 = 1u32;
2477 pub const LIGHT_SOURCE_READY: u32 = 8u32;
2478 pub const LIGHT_SOURCE_SELECT: u32 = 1u32;
2479 pub const MAX_ANSI_CHAR: u32 = 255u32;
2480 pub const MAX_IO_HANDLES: u32 = 16u32;
2481 pub const MAX_RESERVED: u32 = 4u32;
2482 pub const MCRO_ERROR_GENERAL_ERROR: u32 = 0u32;
2483 pub const MCRO_ERROR_OFFLINE: u32 = 5u32;
2484 pub const MCRO_ERROR_PAPER_EMPTY: u32 = 4u32;
2485 pub const MCRO_ERROR_PAPER_JAM: u32 = 2u32;
2486 pub const MCRO_ERROR_PAPER_PROBLEM: u32 = 3u32;
2487 pub const MCRO_ERROR_USER_INTERVENTION: u32 = 6u32;
2488 pub const MCRO_STATUS_OK: u32 = 1u32;
2489 pub const MICR_READER: u32 = 1048576u32;
2490 pub const MICR_READER_READY: u32 = 65536u32;
2491 #[derive(:: std :: clone :: Clone)]
2492 #[repr(C)]
2493 #[cfg(feature = "Win32_Foundation")]
2494 pub struct MINIDRV_TRANSFER_CONTEXT {
2495     pub lSize: i32,
2496     pub lWidthInPixels: i32,
2497     pub lLines: i32,
2498     pub lDepth: i32,
2499     pub lXRes: i32,
2500     pub lYRes: i32,
2501     pub lCompression: i32,
2502     pub guidFormatID: ::windows::runtime::GUID,
2503     pub tymed: i32,
2504     pub hFile: isize,
2505     pub cbOffset: i32,
2506     pub lBufferSize: i32,
2507     pub lActiveBuffer: i32,
2508     pub lNumBuffers: i32,
2509     pub pBaseBuffer: *mut u8,
2510     pub pTransferBuffer: *mut u8,
2511     pub bTransferDataCB: super::super::Foundation::BOOL,
2512     pub bClassDrvAllocBuf: super::super::Foundation::BOOL,
2513     pub lClientAddress: isize,
2514     pub pIWiaMiniDrvCallBack: ::std::option::Option<IWiaMiniDrvCallBack>,
2515     pub lImageSize: i32,
2516     pub lHeaderSize: i32,
2517     pub lItemSize: i32,
2518     pub cbWidthInBytes: i32,
2519     pub lPage: i32,
2520     pub lCurIfdOffset: i32,
2521     pub lPrevIfdOffset: i32,
2522 }
2523 #[cfg(feature = "Win32_Foundation")]
2524 impl MINIDRV_TRANSFER_CONTEXT {}
2525 #[cfg(feature = "Win32_Foundation")]
2526 impl ::std::default::Default for MINIDRV_TRANSFER_CONTEXT {
2527     fn default() -> Self {
2528         unsafe { ::std::mem::zeroed() }
2529     }
2530 }
2531 #[cfg(feature = "Win32_Foundation")]
2532 impl ::std::fmt::Debug for MINIDRV_TRANSFER_CONTEXT {
2533     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2534         fmt.debug_struct("MINIDRV_TRANSFER_CONTEXT")
2535             .field("lSize", &self.lSize)
2536             .field("lWidthInPixels", &self.lWidthInPixels)
2537             .field("lLines", &self.lLines)
2538             .field("lDepth", &self.lDepth)
2539             .field("lXRes", &self.lXRes)
2540             .field("lYRes", &self.lYRes)
2541             .field("lCompression", &self.lCompression)
2542             .field("guidFormatID", &self.guidFormatID)
2543             .field("tymed", &self.tymed)
2544             .field("hFile", &self.hFile)
2545             .field("cbOffset", &self.cbOffset)
2546             .field("lBufferSize", &self.lBufferSize)
2547             .field("lActiveBuffer", &self.lActiveBuffer)
2548             .field("lNumBuffers", &self.lNumBuffers)
2549             .field("pBaseBuffer", &self.pBaseBuffer)
2550             .field("pTransferBuffer", &self.pTransferBuffer)
2551             .field("bTransferDataCB", &self.bTransferDataCB)
2552             .field("bClassDrvAllocBuf", &self.bClassDrvAllocBuf)
2553             .field("lClientAddress", &self.lClientAddress)
2554             .field("pIWiaMiniDrvCallBack", &self.pIWiaMiniDrvCallBack)
2555             .field("lImageSize", &self.lImageSize)
2556             .field("lHeaderSize", &self.lHeaderSize)
2557             .field("lItemSize", &self.lItemSize)
2558             .field("cbWidthInBytes", &self.cbWidthInBytes)
2559             .field("lPage", &self.lPage)
2560             .field("lCurIfdOffset", &self.lCurIfdOffset)
2561             .field("lPrevIfdOffset", &self.lPrevIfdOffset)
2562             .finish()
2563     }
2564 }
2565 #[cfg(feature = "Win32_Foundation")]
2566 impl ::std::cmp::PartialEq for MINIDRV_TRANSFER_CONTEXT {
2567     fn eq(&self, other: &Self) -> bool {
2568         self.lSize == other.lSize
2569             && self.lWidthInPixels == other.lWidthInPixels
2570             && self.lLines == other.lLines
2571             && self.lDepth == other.lDepth
2572             && self.lXRes == other.lXRes
2573             && self.lYRes == other.lYRes
2574             && self.lCompression == other.lCompression
2575             && self.guidFormatID == other.guidFormatID
2576             && self.tymed == other.tymed
2577             && self.hFile == other.hFile
2578             && self.cbOffset == other.cbOffset
2579             && self.lBufferSize == other.lBufferSize
2580             && self.lActiveBuffer == other.lActiveBuffer
2581             && self.lNumBuffers == other.lNumBuffers
2582             && self.pBaseBuffer == other.pBaseBuffer
2583             && self.pTransferBuffer == other.pTransferBuffer
2584             && self.bTransferDataCB == other.bTransferDataCB
2585             && self.bClassDrvAllocBuf == other.bClassDrvAllocBuf
2586             && self.lClientAddress == other.lClientAddress
2587             && self.pIWiaMiniDrvCallBack == other.pIWiaMiniDrvCallBack
2588             && self.lImageSize == other.lImageSize
2589             && self.lHeaderSize == other.lHeaderSize
2590             && self.lItemSize == other.lItemSize
2591             && self.cbWidthInBytes == other.cbWidthInBytes
2592             && self.lPage == other.lPage
2593             && self.lCurIfdOffset == other.lCurIfdOffset
2594             && self.lPrevIfdOffset == other.lPrevIfdOffset
2595     }
2596 }
2597 #[cfg(feature = "Win32_Foundation")]
2598 impl ::std::cmp::Eq for MINIDRV_TRANSFER_CONTEXT {}
2599 #[cfg(feature = "Win32_Foundation")]
2600 unsafe impl ::windows::runtime::Abi for MINIDRV_TRANSFER_CONTEXT {
2601     type Abi = ::std::mem::ManuallyDrop<Self>;
2602     type DefaultType = Self;
2603 }
2604 pub const MIRRORED: u32 = 1u32;
2605 pub const MULTIPLE_FEED: u32 = 512u32;
2606 pub const NEXT_PAGE: u32 = 128u32;
2607 pub const PAPER_JAM: u32 = 32u32;
2608 pub const PATCH_CODE_READER: u32 = 524288u32;
2609 pub const PATCH_CODE_READER_READY: u32 = 32768u32;
2610 pub const PATH_COVER_UP: u32 = 16u32;
2611 pub const PORTRAIT: u32 = 0u32;
2612 pub const POWERMODE_BATTERY: u32 = 2u32;
2613 pub const POWERMODE_LINE: u32 = 1u32;
2614 pub const PREFEED: u32 = 256u32;
2615 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2616 #[repr(C)]
2617 pub struct RANGEVALUE {
2618     pub lMin: i32,
2619     pub lMax: i32,
2620     pub lStep: i32,
2621 }
2622 impl RANGEVALUE {}
2623 impl ::std::default::Default for RANGEVALUE {
2624     fn default() -> Self {
2625         unsafe { ::std::mem::zeroed() }
2626     }
2627 }
2628 impl ::std::fmt::Debug for RANGEVALUE {
2629     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2630         fmt.debug_struct("RANGEVALUE").field("lMin", &self.lMin).field("lMax", &self.lMax).field("lStep", &self.lStep).finish()
2631     }
2632 }
2633 impl ::std::cmp::PartialEq for RANGEVALUE {
2634     fn eq(&self, other: &Self) -> bool {
2635         self.lMin == other.lMin && self.lMax == other.lMax && self.lStep == other.lStep
2636     }
2637 }
2638 impl ::std::cmp::Eq for RANGEVALUE {}
2639 unsafe impl ::windows::runtime::Abi for RANGEVALUE {
2640     type Abi = Self;
2641     type DefaultType = Self;
2642 }
2643 pub const RIGHT_JUSTIFIED: u32 = 2u32;
2644 pub const ROT180: u32 = 2u32;
2645 pub const ROT270: u32 = 3u32;
2646 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2647 #[repr(C)]
2648 #[cfg(feature = "Win32_Foundation")]
2649 pub struct SCANINFO {
2650     pub ADF: i32,
2651     pub TPA: i32,
2652     pub Endorser: i32,
2653     pub OpticalXResolution: i32,
2654     pub OpticalYResolution: i32,
2655     pub BedWidth: i32,
2656     pub BedHeight: i32,
2657     pub IntensityRange: RANGEVALUE,
2658     pub ContrastRange: RANGEVALUE,
2659     pub SupportedCompressionType: i32,
2660     pub SupportedDataTypes: i32,
2661     pub WidthPixels: i32,
2662     pub WidthBytes: i32,
2663     pub Lines: i32,
2664     pub DataType: i32,
2665     pub PixelBits: i32,
2666     pub Intensity: i32,
2667     pub Contrast: i32,
2668     pub Xresolution: i32,
2669     pub Yresolution: i32,
2670     pub Window: SCANWINDOW,
2671     pub DitherPattern: i32,
2672     pub Negative: i32,
2673     pub Mirror: i32,
2674     pub AutoBack: i32,
2675     pub ColorDitherPattern: i32,
2676     pub ToneMap: i32,
2677     pub Compression: i32,
2678     pub RawDataFormat: i32,
2679     pub RawPixelOrder: i32,
2680     pub bNeedDataAlignment: i32,
2681     pub DelayBetweenRead: i32,
2682     pub MaxBufferSize: i32,
2683     pub DeviceIOHandles: [super::super::Foundation::HANDLE; 16],
2684     pub lReserved: [i32; 4],
2685     pub pMicroDriverContext: *mut ::std::ffi::c_void,
2686 }
2687 #[cfg(feature = "Win32_Foundation")]
2688 impl SCANINFO {}
2689 #[cfg(feature = "Win32_Foundation")]
2690 impl ::std::default::Default for SCANINFO {
2691     fn default() -> Self {
2692         unsafe { ::std::mem::zeroed() }
2693     }
2694 }
2695 #[cfg(feature = "Win32_Foundation")]
2696 impl ::std::fmt::Debug for SCANINFO {
2697     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2698         fmt.debug_struct("SCANINFO")
2699             .field("ADF", &self.ADF)
2700             .field("TPA", &self.TPA)
2701             .field("Endorser", &self.Endorser)
2702             .field("OpticalXResolution", &self.OpticalXResolution)
2703             .field("OpticalYResolution", &self.OpticalYResolution)
2704             .field("BedWidth", &self.BedWidth)
2705             .field("BedHeight", &self.BedHeight)
2706             .field("IntensityRange", &self.IntensityRange)
2707             .field("ContrastRange", &self.ContrastRange)
2708             .field("SupportedCompressionType", &self.SupportedCompressionType)
2709             .field("SupportedDataTypes", &self.SupportedDataTypes)
2710             .field("WidthPixels", &self.WidthPixels)
2711             .field("WidthBytes", &self.WidthBytes)
2712             .field("Lines", &self.Lines)
2713             .field("DataType", &self.DataType)
2714             .field("PixelBits", &self.PixelBits)
2715             .field("Intensity", &self.Intensity)
2716             .field("Contrast", &self.Contrast)
2717             .field("Xresolution", &self.Xresolution)
2718             .field("Yresolution", &self.Yresolution)
2719             .field("Window", &self.Window)
2720             .field("DitherPattern", &self.DitherPattern)
2721             .field("Negative", &self.Negative)
2722             .field("Mirror", &self.Mirror)
2723             .field("AutoBack", &self.AutoBack)
2724             .field("ColorDitherPattern", &self.ColorDitherPattern)
2725             .field("ToneMap", &self.ToneMap)
2726             .field("Compression", &self.Compression)
2727             .field("RawDataFormat", &self.RawDataFormat)
2728             .field("RawPixelOrder", &self.RawPixelOrder)
2729             .field("bNeedDataAlignment", &self.bNeedDataAlignment)
2730             .field("DelayBetweenRead", &self.DelayBetweenRead)
2731             .field("MaxBufferSize", &self.MaxBufferSize)
2732             .field("DeviceIOHandles", &self.DeviceIOHandles)
2733             .field("lReserved", &self.lReserved)
2734             .field("pMicroDriverContext", &self.pMicroDriverContext)
2735             .finish()
2736     }
2737 }
2738 #[cfg(feature = "Win32_Foundation")]
2739 impl ::std::cmp::PartialEq for SCANINFO {
2740     fn eq(&self, other: &Self) -> bool {
2741         self.ADF == other.ADF
2742             && self.TPA == other.TPA
2743             && self.Endorser == other.Endorser
2744             && self.OpticalXResolution == other.OpticalXResolution
2745             && self.OpticalYResolution == other.OpticalYResolution
2746             && self.BedWidth == other.BedWidth
2747             && self.BedHeight == other.BedHeight
2748             && self.IntensityRange == other.IntensityRange
2749             && self.ContrastRange == other.ContrastRange
2750             && self.SupportedCompressionType == other.SupportedCompressionType
2751             && self.SupportedDataTypes == other.SupportedDataTypes
2752             && self.WidthPixels == other.WidthPixels
2753             && self.WidthBytes == other.WidthBytes
2754             && self.Lines == other.Lines
2755             && self.DataType == other.DataType
2756             && self.PixelBits == other.PixelBits
2757             && self.Intensity == other.Intensity
2758             && self.Contrast == other.Contrast
2759             && self.Xresolution == other.Xresolution
2760             && self.Yresolution == other.Yresolution
2761             && self.Window == other.Window
2762             && self.DitherPattern == other.DitherPattern
2763             && self.Negative == other.Negative
2764             && self.Mirror == other.Mirror
2765             && self.AutoBack == other.AutoBack
2766             && self.ColorDitherPattern == other.ColorDitherPattern
2767             && self.ToneMap == other.ToneMap
2768             && self.Compression == other.Compression
2769             && self.RawDataFormat == other.RawDataFormat
2770             && self.RawPixelOrder == other.RawPixelOrder
2771             && self.bNeedDataAlignment == other.bNeedDataAlignment
2772             && self.DelayBetweenRead == other.DelayBetweenRead
2773             && self.MaxBufferSize == other.MaxBufferSize
2774             && self.DeviceIOHandles == other.DeviceIOHandles
2775             && self.lReserved == other.lReserved
2776             && self.pMicroDriverContext == other.pMicroDriverContext
2777     }
2778 }
2779 #[cfg(feature = "Win32_Foundation")]
2780 impl ::std::cmp::Eq for SCANINFO {}
2781 #[cfg(feature = "Win32_Foundation")]
2782 unsafe impl ::windows::runtime::Abi for SCANINFO {
2783     type Abi = Self;
2784     type DefaultType = Self;
2785 }
2786 pub const SCANMODE_FINALSCAN: u32 = 0u32;
2787 pub const SCANMODE_PREVIEWSCAN: u32 = 1u32;
2788 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2789 #[repr(C)]
2790 pub struct SCANWINDOW {
2791     pub xPos: i32,
2792     pub yPos: i32,
2793     pub xExtent: i32,
2794     pub yExtent: i32,
2795 }
2796 impl SCANWINDOW {}
2797 impl ::std::default::Default for SCANWINDOW {
2798     fn default() -> Self {
2799         unsafe { ::std::mem::zeroed() }
2800     }
2801 }
2802 impl ::std::fmt::Debug for SCANWINDOW {
2803     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2804         fmt.debug_struct("SCANWINDOW").field("xPos", &self.xPos).field("yPos", &self.yPos).field("xExtent", &self.xExtent).field("yExtent", &self.yExtent).finish()
2805     }
2806 }
2807 impl ::std::cmp::PartialEq for SCANWINDOW {
2808     fn eq(&self, other: &Self) -> bool {
2809         self.xPos == other.xPos && self.yPos == other.yPos && self.xExtent == other.xExtent && self.yExtent == other.yExtent
2810     }
2811 }
2812 impl ::std::cmp::Eq for SCANWINDOW {}
2813 unsafe impl ::windows::runtime::Abi for SCANWINDOW {
2814     type Abi = Self;
2815     type DefaultType = Self;
2816 }
2817 pub const SCAN_FINISHED: u32 = 30u32;
2818 pub const SCAN_FIRST: u32 = 10u32;
2819 pub const SCAN_NEXT: u32 = 20u32;
2820 pub const STOR: u32 = 2048u32;
2821 pub const STORAGE_FULL: u32 = 256u32;
2822 pub const STORAGE_READY: u32 = 128u32;
2823 pub const SUPPORT_BW: u32 = 2u32;
2824 pub const SUPPORT_COLOR: u32 = 1u32;
2825 pub const SUPPORT_GRAYSCALE: u32 = 4u32;
2826 pub const TOP_JUSTIFIED: u32 = 0u32;
2827 pub const TRANSPARENCY_DYNAMIC_FRAME_SUPPORT: u32 = 1u32;
2828 pub const TRANSPARENCY_STATIC_FRAME_SUPPORT: u32 = 2u32;
2829 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2830 #[repr(C)]
2831 pub struct TWAIN_CAPABILITY {
2832     pub lSize: i32,
2833     pub lMSG: i32,
2834     pub lCapID: i32,
2835     pub lConType: i32,
2836     pub lRC: i32,
2837     pub lCC: i32,
2838     pub lDataSize: i32,
2839     pub Data: [u8; 1],
2840 }
2841 impl TWAIN_CAPABILITY {}
2842 impl ::std::default::Default for TWAIN_CAPABILITY {
2843     fn default() -> Self {
2844         unsafe { ::std::mem::zeroed() }
2845     }
2846 }
2847 impl ::std::fmt::Debug for TWAIN_CAPABILITY {
2848     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2849         fmt.debug_struct("TWAIN_CAPABILITY").field("lSize", &self.lSize).field("lMSG", &self.lMSG).field("lCapID", &self.lCapID).field("lConType", &self.lConType).field("lRC", &self.lRC).field("lCC", &self.lCC).field("lDataSize", &self.lDataSize).field("Data", &self.Data).finish()
2850     }
2851 }
2852 impl ::std::cmp::PartialEq for TWAIN_CAPABILITY {
2853     fn eq(&self, other: &Self) -> bool {
2854         self.lSize == other.lSize && self.lMSG == other.lMSG && self.lCapID == other.lCapID && self.lConType == other.lConType && self.lRC == other.lRC && self.lCC == other.lCC && self.lDataSize == other.lDataSize && self.Data == other.Data
2855     }
2856 }
2857 impl ::std::cmp::Eq for TWAIN_CAPABILITY {}
2858 unsafe impl ::windows::runtime::Abi for TWAIN_CAPABILITY {
2859     type Abi = Self;
2860     type DefaultType = Self;
2861 }
2862 pub const TYMED_CALLBACK: u32 = 128u32;
2863 pub const TYMED_MULTIPAGE_CALLBACK: u32 = 512u32;
2864 pub const TYMED_MULTIPAGE_FILE: u32 = 256u32;
2865 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
2866 #[repr(C)]
2867 #[cfg(feature = "Win32_Foundation")]
2868 pub struct VAL {
2869     pub lVal: i32,
2870     pub dblVal: f64,
2871     pub pGuid: *mut ::windows::runtime::GUID,
2872     pub pScanInfo: *mut SCANINFO,
2873     pub handle: isize,
2874     pub ppButtonNames: *mut *mut u16,
2875     pub pHandle: *mut super::super::Foundation::HANDLE,
2876     pub lReserved: i32,
2877     pub szVal: [super::super::Foundation::CHAR; 255],
2878 }
2879 #[cfg(feature = "Win32_Foundation")]
2880 impl VAL {}
2881 #[cfg(feature = "Win32_Foundation")]
2882 impl ::std::default::Default for VAL {
2883     fn default() -> Self {
2884         unsafe { ::std::mem::zeroed() }
2885     }
2886 }
2887 #[cfg(feature = "Win32_Foundation")]
2888 impl ::std::fmt::Debug for VAL {
2889     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2890         fmt.debug_struct("VAL")
2891             .field("lVal", &self.lVal)
2892             .field("dblVal", &self.dblVal)
2893             .field("pGuid", &self.pGuid)
2894             .field("pScanInfo", &self.pScanInfo)
2895             .field("handle", &self.handle)
2896             .field("ppButtonNames", &self.ppButtonNames)
2897             .field("pHandle", &self.pHandle)
2898             .field("lReserved", &self.lReserved)
2899             .field("szVal", &self.szVal)
2900             .finish()
2901     }
2902 }
2903 #[cfg(feature = "Win32_Foundation")]
2904 impl ::std::cmp::PartialEq for VAL {
2905     fn eq(&self, other: &Self) -> bool {
2906         self.lVal == other.lVal && self.dblVal == other.dblVal && self.pGuid == other.pGuid && self.pScanInfo == other.pScanInfo && self.handle == other.handle && self.ppButtonNames == other.ppButtonNames && self.pHandle == other.pHandle && self.lReserved == other.lReserved && self.szVal == other.szVal
2907     }
2908 }
2909 #[cfg(feature = "Win32_Foundation")]
2910 impl ::std::cmp::Eq for VAL {}
2911 #[cfg(feature = "Win32_Foundation")]
2912 unsafe impl ::windows::runtime::Abi for VAL {
2913     type Abi = Self;
2914     type DefaultType = Self;
2915 }
2916 pub const WHITEBALANCE_AUTO: u32 = 2u32;
2917 pub const WHITEBALANCE_DAYLIGHT: u32 = 4u32;
2918 pub const WHITEBALANCE_FLASH: u32 = 7u32;
2919 pub const WHITEBALANCE_FLORESCENT: u32 = 5u32;
2920 pub const WHITEBALANCE_MANUAL: u32 = 1u32;
2921 pub const WHITEBALANCE_ONEPUSH_AUTO: u32 = 3u32;
2922 pub const WHITEBALANCE_TUNGSTEN: u32 = 6u32;
2923 #[cfg(feature = "Win32_Foundation")]
2924 impl ::std::clone::Clone for WIAS_CHANGED_VALUE_INFO {
2925     fn clone(&self) -> Self {
2926         unimplemented!()
2927     }
2928 }
2929 #[repr(C)]
2930 #[cfg(feature = "Win32_Foundation")]
2931 pub struct WIAS_CHANGED_VALUE_INFO {
2932     pub bChanged: super::super::Foundation::BOOL,
2933     pub vt: i32,
2934     pub Old: WIAS_CHANGED_VALUE_INFO_1,
2935     pub Current: WIAS_CHANGED_VALUE_INFO_0,
2936 }
2937 #[cfg(feature = "Win32_Foundation")]
2938 impl WIAS_CHANGED_VALUE_INFO {}
2939 #[cfg(feature = "Win32_Foundation")]
2940 impl ::std::default::Default for WIAS_CHANGED_VALUE_INFO {
2941     fn default() -> Self {
2942         unsafe { ::std::mem::zeroed() }
2943     }
2944 }
2945 #[cfg(feature = "Win32_Foundation")]
2946 impl ::std::cmp::PartialEq for WIAS_CHANGED_VALUE_INFO {
2947     fn eq(&self, _other: &Self) -> bool {
2948         unimplemented!()
2949     }
2950 }
2951 #[cfg(feature = "Win32_Foundation")]
2952 impl ::std::cmp::Eq for WIAS_CHANGED_VALUE_INFO {}
2953 #[cfg(feature = "Win32_Foundation")]
2954 unsafe impl ::windows::runtime::Abi for WIAS_CHANGED_VALUE_INFO {
2955     type Abi = ::std::mem::ManuallyDrop<Self>;
2956     type DefaultType = Self;
2957 }
2958 #[cfg(feature = "Win32_Foundation")]
2959 impl ::std::clone::Clone for WIAS_CHANGED_VALUE_INFO_0 {
2960     fn clone(&self) -> Self {
2961         unimplemented!()
2962     }
2963 }
2964 #[repr(C)]
2965 #[cfg(feature = "Win32_Foundation")]
2966 pub union WIAS_CHANGED_VALUE_INFO_0 {
2967     pub lVal: i32,
2968     pub fltVal: f32,
2969     pub bstrVal: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
2970     pub guidVal: ::windows::runtime::GUID,
2971 }
2972 #[cfg(feature = "Win32_Foundation")]
2973 impl WIAS_CHANGED_VALUE_INFO_0 {}
2974 #[cfg(feature = "Win32_Foundation")]
2975 impl ::std::default::Default for WIAS_CHANGED_VALUE_INFO_0 {
2976     fn default() -> Self {
2977         unsafe { ::std::mem::zeroed() }
2978     }
2979 }
2980 #[cfg(feature = "Win32_Foundation")]
2981 impl ::std::cmp::PartialEq for WIAS_CHANGED_VALUE_INFO_0 {
2982     fn eq(&self, _other: &Self) -> bool {
2983         unimplemented!()
2984     }
2985 }
2986 #[cfg(feature = "Win32_Foundation")]
2987 impl ::std::cmp::Eq for WIAS_CHANGED_VALUE_INFO_0 {}
2988 #[cfg(feature = "Win32_Foundation")]
2989 unsafe impl ::windows::runtime::Abi for WIAS_CHANGED_VALUE_INFO_0 {
2990     type Abi = ::std::mem::ManuallyDrop<Self>;
2991     type DefaultType = Self;
2992 }
2993 #[cfg(feature = "Win32_Foundation")]
2994 impl ::std::clone::Clone for WIAS_CHANGED_VALUE_INFO_1 {
2995     fn clone(&self) -> Self {
2996         unimplemented!()
2997     }
2998 }
2999 #[repr(C)]
3000 #[cfg(feature = "Win32_Foundation")]
3001 pub union WIAS_CHANGED_VALUE_INFO_1 {
3002     pub lVal: i32,
3003     pub fltVal: f32,
3004     pub bstrVal: ::std::mem::ManuallyDrop<super::super::Foundation::BSTR>,
3005     pub guidVal: ::windows::runtime::GUID,
3006 }
3007 #[cfg(feature = "Win32_Foundation")]
3008 impl WIAS_CHANGED_VALUE_INFO_1 {}
3009 #[cfg(feature = "Win32_Foundation")]
3010 impl ::std::default::Default for WIAS_CHANGED_VALUE_INFO_1 {
3011     fn default() -> Self {
3012         unsafe { ::std::mem::zeroed() }
3013     }
3014 }
3015 #[cfg(feature = "Win32_Foundation")]
3016 impl ::std::cmp::PartialEq for WIAS_CHANGED_VALUE_INFO_1 {
3017     fn eq(&self, _other: &Self) -> bool {
3018         unimplemented!()
3019     }
3020 }
3021 #[cfg(feature = "Win32_Foundation")]
3022 impl ::std::cmp::Eq for WIAS_CHANGED_VALUE_INFO_1 {}
3023 #[cfg(feature = "Win32_Foundation")]
3024 unsafe impl ::windows::runtime::Abi for WIAS_CHANGED_VALUE_INFO_1 {
3025     type Abi = ::std::mem::ManuallyDrop<Self>;
3026     type DefaultType = Self;
3027 }
3028 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3029 #[repr(C)]
3030 pub struct WIAS_DOWN_SAMPLE_INFO {
3031     pub ulOriginalWidth: u32,
3032     pub ulOriginalHeight: u32,
3033     pub ulBitsPerPixel: u32,
3034     pub ulXRes: u32,
3035     pub ulYRes: u32,
3036     pub ulDownSampledWidth: u32,
3037     pub ulDownSampledHeight: u32,
3038     pub ulActualSize: u32,
3039     pub ulDestBufSize: u32,
3040     pub ulSrcBufSize: u32,
3041     pub pSrcBuffer: *mut u8,
3042     pub pDestBuffer: *mut u8,
3043 }
3044 impl WIAS_DOWN_SAMPLE_INFO {}
3045 impl ::std::default::Default for WIAS_DOWN_SAMPLE_INFO {
3046     fn default() -> Self {
3047         unsafe { ::std::mem::zeroed() }
3048     }
3049 }
3050 impl ::std::fmt::Debug for WIAS_DOWN_SAMPLE_INFO {
3051     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3052         fmt.debug_struct("WIAS_DOWN_SAMPLE_INFO")
3053             .field("ulOriginalWidth", &self.ulOriginalWidth)
3054             .field("ulOriginalHeight", &self.ulOriginalHeight)
3055             .field("ulBitsPerPixel", &self.ulBitsPerPixel)
3056             .field("ulXRes", &self.ulXRes)
3057             .field("ulYRes", &self.ulYRes)
3058             .field("ulDownSampledWidth", &self.ulDownSampledWidth)
3059             .field("ulDownSampledHeight", &self.ulDownSampledHeight)
3060             .field("ulActualSize", &self.ulActualSize)
3061             .field("ulDestBufSize", &self.ulDestBufSize)
3062             .field("ulSrcBufSize", &self.ulSrcBufSize)
3063             .field("pSrcBuffer", &self.pSrcBuffer)
3064             .field("pDestBuffer", &self.pDestBuffer)
3065             .finish()
3066     }
3067 }
3068 impl ::std::cmp::PartialEq for WIAS_DOWN_SAMPLE_INFO {
3069     fn eq(&self, other: &Self) -> bool {
3070         self.ulOriginalWidth == other.ulOriginalWidth
3071             && self.ulOriginalHeight == other.ulOriginalHeight
3072             && self.ulBitsPerPixel == other.ulBitsPerPixel
3073             && self.ulXRes == other.ulXRes
3074             && self.ulYRes == other.ulYRes
3075             && self.ulDownSampledWidth == other.ulDownSampledWidth
3076             && self.ulDownSampledHeight == other.ulDownSampledHeight
3077             && self.ulActualSize == other.ulActualSize
3078             && self.ulDestBufSize == other.ulDestBufSize
3079             && self.ulSrcBufSize == other.ulSrcBufSize
3080             && self.pSrcBuffer == other.pSrcBuffer
3081             && self.pDestBuffer == other.pDestBuffer
3082     }
3083 }
3084 impl ::std::cmp::Eq for WIAS_DOWN_SAMPLE_INFO {}
3085 unsafe impl ::windows::runtime::Abi for WIAS_DOWN_SAMPLE_INFO {
3086     type Abi = Self;
3087     type DefaultType = Self;
3088 }
3089 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3090 #[repr(C)]
3091 #[cfg(feature = "Win32_Foundation")]
3092 pub struct WIAS_ENDORSER_INFO {
3093     pub ulPageCount: u32,
3094     pub ulNumEndorserValues: u32,
3095     pub pEndorserValues: *mut WIAS_ENDORSER_VALUE,
3096 }
3097 #[cfg(feature = "Win32_Foundation")]
3098 impl WIAS_ENDORSER_INFO {}
3099 #[cfg(feature = "Win32_Foundation")]
3100 impl ::std::default::Default for WIAS_ENDORSER_INFO {
3101     fn default() -> Self {
3102         unsafe { ::std::mem::zeroed() }
3103     }
3104 }
3105 #[cfg(feature = "Win32_Foundation")]
3106 impl ::std::fmt::Debug for WIAS_ENDORSER_INFO {
3107     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3108         fmt.debug_struct("WIAS_ENDORSER_INFO").field("ulPageCount", &self.ulPageCount).field("ulNumEndorserValues", &self.ulNumEndorserValues).field("pEndorserValues", &self.pEndorserValues).finish()
3109     }
3110 }
3111 #[cfg(feature = "Win32_Foundation")]
3112 impl ::std::cmp::PartialEq for WIAS_ENDORSER_INFO {
3113     fn eq(&self, other: &Self) -> bool {
3114         self.ulPageCount == other.ulPageCount && self.ulNumEndorserValues == other.ulNumEndorserValues && self.pEndorserValues == other.pEndorserValues
3115     }
3116 }
3117 #[cfg(feature = "Win32_Foundation")]
3118 impl ::std::cmp::Eq for WIAS_ENDORSER_INFO {}
3119 #[cfg(feature = "Win32_Foundation")]
3120 unsafe impl ::windows::runtime::Abi for WIAS_ENDORSER_INFO {
3121     type Abi = Self;
3122     type DefaultType = Self;
3123 }
3124 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3125 #[repr(C)]
3126 #[cfg(feature = "Win32_Foundation")]
3127 pub struct WIAS_ENDORSER_VALUE {
3128     pub wszTokenName: super::super::Foundation::PWSTR,
3129     pub wszValue: super::super::Foundation::PWSTR,
3130 }
3131 #[cfg(feature = "Win32_Foundation")]
3132 impl WIAS_ENDORSER_VALUE {}
3133 #[cfg(feature = "Win32_Foundation")]
3134 impl ::std::default::Default for WIAS_ENDORSER_VALUE {
3135     fn default() -> Self {
3136         unsafe { ::std::mem::zeroed() }
3137     }
3138 }
3139 #[cfg(feature = "Win32_Foundation")]
3140 impl ::std::fmt::Debug for WIAS_ENDORSER_VALUE {
3141     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3142         fmt.debug_struct("WIAS_ENDORSER_VALUE").field("wszTokenName", &self.wszTokenName).field("wszValue", &self.wszValue).finish()
3143     }
3144 }
3145 #[cfg(feature = "Win32_Foundation")]
3146 impl ::std::cmp::PartialEq for WIAS_ENDORSER_VALUE {
3147     fn eq(&self, other: &Self) -> bool {
3148         self.wszTokenName == other.wszTokenName && self.wszValue == other.wszValue
3149     }
3150 }
3151 #[cfg(feature = "Win32_Foundation")]
3152 impl ::std::cmp::Eq for WIAS_ENDORSER_VALUE {}
3153 #[cfg(feature = "Win32_Foundation")]
3154 unsafe impl ::windows::runtime::Abi for WIAS_ENDORSER_VALUE {
3155     type Abi = Self;
3156     type DefaultType = Self;
3157 }
3158 #[derive(:: std :: cmp :: PartialEq, :: std :: cmp :: Eq, :: std :: marker :: Copy, :: std :: clone :: Clone, :: std :: default :: Default, :: std :: fmt :: Debug)]
3159 #[repr(transparent)]
3160 pub struct WIAVIDEO_STATE(pub i32);
3161 pub const WIAVIDEO_NO_VIDEO: WIAVIDEO_STATE = WIAVIDEO_STATE(1i32);
3162 pub const WIAVIDEO_CREATING_VIDEO: WIAVIDEO_STATE = WIAVIDEO_STATE(2i32);
3163 pub const WIAVIDEO_VIDEO_CREATED: WIAVIDEO_STATE = WIAVIDEO_STATE(3i32);
3164 pub const WIAVIDEO_VIDEO_PLAYING: WIAVIDEO_STATE = WIAVIDEO_STATE(4i32);
3165 pub const WIAVIDEO_VIDEO_PAUSED: WIAVIDEO_STATE = WIAVIDEO_STATE(5i32);
3166 pub const WIAVIDEO_DESTROYING_VIDEO: WIAVIDEO_STATE = WIAVIDEO_STATE(6i32);
3167 impl ::std::convert::From<i32> for WIAVIDEO_STATE {
3168     fn from(value: i32) -> Self {
3169         Self(value)
3170     }
3171 }
3172 unsafe impl ::windows::runtime::Abi for WIAVIDEO_STATE {
3173     type Abi = Self;
3174     type DefaultType = Self;
3175 }
3176 pub const WIA_ACTION_EVENT: u32 = 2u32;
3177 pub const WIA_ADVANCED_PREVIEW: u32 = 0u32;
3178 pub const WIA_ALARM_BEEP1: u32 = 1u32;
3179 pub const WIA_ALARM_BEEP10: u32 = 10u32;
3180 pub const WIA_ALARM_BEEP2: u32 = 2u32;
3181 pub const WIA_ALARM_BEEP3: u32 = 3u32;
3182 pub const WIA_ALARM_BEEP4: u32 = 4u32;
3183 pub const WIA_ALARM_BEEP5: u32 = 5u32;
3184 pub const WIA_ALARM_BEEP6: u32 = 6u32;
3185 pub const WIA_ALARM_BEEP7: u32 = 7u32;
3186 pub const WIA_ALARM_BEEP8: u32 = 8u32;
3187 pub const WIA_ALARM_BEEP9: u32 = 9u32;
3188 pub const WIA_ALARM_NONE: u32 = 0u32;
3189 pub const WIA_AUTO_CROP_DISABLED: u32 = 0u32;
3190 pub const WIA_AUTO_CROP_MULTI: u32 = 2u32;
3191 pub const WIA_AUTO_CROP_SINGLE: u32 = 1u32;
3192 pub const WIA_AUTO_DESKEW_OFF: u32 = 1u32;
3193 pub const WIA_AUTO_DESKEW_ON: u32 = 0u32;
3194 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3195 #[repr(C)]
3196 pub struct WIA_BARCODES {
3197     pub Tag: u32,
3198     pub Version: u32,
3199     pub Size: u32,
3200     pub Count: u32,
3201     pub Barcodes: [WIA_BARCODE_INFO; 1],
3202 }
3203 impl WIA_BARCODES {}
3204 impl ::std::default::Default for WIA_BARCODES {
3205     fn default() -> Self {
3206         unsafe { ::std::mem::zeroed() }
3207     }
3208 }
3209 impl ::std::fmt::Debug for WIA_BARCODES {
3210     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3211         fmt.debug_struct("WIA_BARCODES").field("Tag", &self.Tag).field("Version", &self.Version).field("Size", &self.Size).field("Count", &self.Count).field("Barcodes", &self.Barcodes).finish()
3212     }
3213 }
3214 impl ::std::cmp::PartialEq for WIA_BARCODES {
3215     fn eq(&self, other: &Self) -> bool {
3216         self.Tag == other.Tag && self.Version == other.Version && self.Size == other.Size && self.Count == other.Count && self.Barcodes == other.Barcodes
3217     }
3218 }
3219 impl ::std::cmp::Eq for WIA_BARCODES {}
3220 unsafe impl ::windows::runtime::Abi for WIA_BARCODES {
3221     type Abi = Self;
3222     type DefaultType = Self;
3223 }
3224 pub const WIA_BARCODE_AUTO_SEARCH: u32 = 4u32;
3225 pub const WIA_BARCODE_AZTEC: u32 = 36u32;
3226 pub const WIA_BARCODE_CODABAR: u32 = 2u32;
3227 pub const WIA_BARCODE_CODE128: u32 = 9u32;
3228 pub const WIA_BARCODE_CODE128A: u32 = 10u32;
3229 pub const WIA_BARCODE_CODE128B: u32 = 11u32;
3230 pub const WIA_BARCODE_CODE128C: u32 = 12u32;
3231 pub const WIA_BARCODE_CODE39: u32 = 5u32;
3232 pub const WIA_BARCODE_CODE39_FULLASCII: u32 = 7u32;
3233 pub const WIA_BARCODE_CODE39_MOD43: u32 = 6u32;
3234 pub const WIA_BARCODE_CODE93: u32 = 8u32;
3235 pub const WIA_BARCODE_CPCBINARY: u32 = 29u32;
3236 pub const WIA_BARCODE_CUSTOMBASE: u32 = 32768u32;
3237 pub const WIA_BARCODE_DATAMATRIX: u32 = 38u32;
3238 pub const WIA_BARCODE_DATASTRIP: u32 = 39u32;
3239 pub const WIA_BARCODE_EAN13: u32 = 17u32;
3240 pub const WIA_BARCODE_EAN8: u32 = 16u32;
3241 pub const WIA_BARCODE_EZCODE: u32 = 40u32;
3242 pub const WIA_BARCODE_FIM: u32 = 30u32;
3243 pub const WIA_BARCODE_GS1128: u32 = 13u32;
3244 pub const WIA_BARCODE_GS1DATABAR: u32 = 14u32;
3245 pub const WIA_BARCODE_HIGH_CAPACITY_COLOR: u32 = 26u32;
3246 pub const WIA_BARCODE_HORIZONTAL_SEARCH: u32 = 0u32;
3247 pub const WIA_BARCODE_HORIZONTAL_VERTICAL_SEARCH: u32 = 2u32;
3248 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3249 #[repr(C)]
3250 pub struct WIA_BARCODE_INFO {
3251     pub Size: u32,
3252     pub Type: u32,
3253     pub Page: u32,
3254     pub Confidence: u32,
3255     pub XOffset: u32,
3256     pub YOffset: u32,
3257     pub Rotation: u32,
3258     pub Length: u32,
3259     pub Text: [u16; 1],
3260 }
3261 impl WIA_BARCODE_INFO {}
3262 impl ::std::default::Default for WIA_BARCODE_INFO {
3263     fn default() -> Self {
3264         unsafe { ::std::mem::zeroed() }
3265     }
3266 }
3267 impl ::std::fmt::Debug for WIA_BARCODE_INFO {
3268     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3269         fmt.debug_struct("WIA_BARCODE_INFO")
3270             .field("Size", &self.Size)
3271             .field("Type", &self.Type)
3272             .field("Page", &self.Page)
3273             .field("Confidence", &self.Confidence)
3274             .field("XOffset", &self.XOffset)
3275             .field("YOffset", &self.YOffset)
3276             .field("Rotation", &self.Rotation)
3277             .field("Length", &self.Length)
3278             .field("Text", &self.Text)
3279             .finish()
3280     }
3281 }
3282 impl ::std::cmp::PartialEq for WIA_BARCODE_INFO {
3283     fn eq(&self, other: &Self) -> bool {
3284         self.Size == other.Size && self.Type == other.Type && self.Page == other.Page && self.Confidence == other.Confidence && self.XOffset == other.XOffset && self.YOffset == other.YOffset && self.Rotation == other.Rotation && self.Length == other.Length && self.Text == other.Text
3285     }
3286 }
3287 impl ::std::cmp::Eq for WIA_BARCODE_INFO {}
3288 unsafe impl ::windows::runtime::Abi for WIA_BARCODE_INFO {
3289     type Abi = Self;
3290     type DefaultType = Self;
3291 }
3292 pub const WIA_BARCODE_INTELLIGENT_MAIL: u32 = 23u32;
3293 pub const WIA_BARCODE_INTERLEAVED_2OF5: u32 = 4u32;
3294 pub const WIA_BARCODE_ITF14: u32 = 15u32;
3295 pub const WIA_BARCODE_JAN: u32 = 34u32;
3296 pub const WIA_BARCODE_MAXICODE: u32 = 27u32;
3297 pub const WIA_BARCODE_MSI: u32 = 33u32;
3298 pub const WIA_BARCODE_NONINTERLEAVED_2OF5: u32 = 3u32;
3299 pub const WIA_BARCODE_PDF417: u32 = 28u32;
3300 pub const WIA_BARCODE_PHARMACODE: u32 = 31u32;
3301 pub const WIA_BARCODE_PLANET: u32 = 22u32;
3302 pub const WIA_BARCODE_PLESSEY: u32 = 32u32;
3303 pub const WIA_BARCODE_POSTBAR: u32 = 24u32;
3304 pub const WIA_BARCODE_POSTNETA: u32 = 18u32;
3305 pub const WIA_BARCODE_POSTNETB: u32 = 19u32;
3306 pub const WIA_BARCODE_POSTNETC: u32 = 20u32;
3307 pub const WIA_BARCODE_POSTNET_DPBC: u32 = 21u32;
3308 pub const WIA_BARCODE_QRCODE: u32 = 41u32;
3309 pub const WIA_BARCODE_READER_AUTO: u32 = 1u32;
3310 pub const WIA_BARCODE_READER_DISABLED: u32 = 0u32;
3311 pub const WIA_BARCODE_READER_FEEDER_BACK: u32 = 4u32;
3312 pub const WIA_BARCODE_READER_FEEDER_DUPLEX: u32 = 5u32;
3313 pub const WIA_BARCODE_READER_FEEDER_FRONT: u32 = 3u32;
3314 pub const WIA_BARCODE_READER_FLATBED: u32 = 2u32;
3315 pub const WIA_BARCODE_RM4SCC: u32 = 25u32;
3316 pub const WIA_BARCODE_SHOTCODE: u32 = 42u32;
3317 pub const WIA_BARCODE_SMALLAZTEC: u32 = 37u32;
3318 pub const WIA_BARCODE_SPARQCODE: u32 = 43u32;
3319 pub const WIA_BARCODE_TELEPEN: u32 = 35u32;
3320 pub const WIA_BARCODE_UPCA: u32 = 0u32;
3321 pub const WIA_BARCODE_UPCE: u32 = 1u32;
3322 pub const WIA_BARCODE_VERTICAL_HORIZONTAL_SEARCH: u32 = 3u32;
3323 pub const WIA_BARCODE_VERTICAL_SEARCH: u32 = 1u32;
3324 pub const WIA_BASIC_PREVIEW: u32 = 1u32;
3325 pub const WIA_BLANK_PAGE_DETECTION_DISABLED: u32 = 0u32;
3326 pub const WIA_BLANK_PAGE_DISCARD: u32 = 1u32;
3327 pub const WIA_BLANK_PAGE_JOB_SEPARATOR: u32 = 2u32;
3328 pub const WIA_CATEGORY_AUTO: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3741212632, 27799, 19934, [177, 30, 203, 80, 155, 39, 14, 17]);
3329 pub const WIA_CATEGORY_BARCODE_READER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(920746144, 18239, 18763, [175, 143, 108, 63, 109, 116, 134, 252]);
3330 pub const WIA_CATEGORY_ENDORSER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1192242371, 4735, 18289, [173, 252, 153, 26, 184, 238, 30, 151]);
3331 pub const WIA_CATEGORY_FEEDER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4262664500, 63564, 17069, [141, 164, 97, 41, 205, 221, 114, 136]);
3332 pub const WIA_CATEGORY_FEEDER_BACK: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1640658132, 14811, 17066, [137, 177, 140, 25, 201, 205, 76, 35]);
3333 pub const WIA_CATEGORY_FEEDER_FRONT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1210259292, 15144, 18555, [167, 230, 238, 188, 23, 97, 79, 209]);
3334 pub const WIA_CATEGORY_FILM: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4244003815, 15587, 17523, [175, 133, 245, 211, 125, 33, 182, 138]);
3335 pub const WIA_CATEGORY_FINISHED_FILE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4281038794, 53124, 17195, [167, 53, 58, 19, 13, 222, 42, 136]);
3336 pub const WIA_CATEGORY_FLATBED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4217404191, 17395, 18571, [133, 91, 251, 112, 62, 195, 66, 166]);
3337 pub const WIA_CATEGORY_FOLDER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3331499078, 28506, 18461, [133, 187, 146, 226, 232, 111, 211, 10]);
3338 pub const WIA_CATEGORY_IMPRINTER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4234477933, 37378, 17373, [145, 167, 100, 194, 149, 76, 251, 139]);
3339 pub const WIA_CATEGORY_MICR_READER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(998687212, 29116, 17989, [180, 213, 27, 25, 218, 43, 233, 120]);
3340 pub const WIA_CATEGORY_PATCH_CODE_READER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2410289773, 40074, 17101, [152, 179, 238, 151, 0, 203, 199, 79]);
3341 pub const WIA_CATEGORY_ROOT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4052963951, 22968, 18982, [152, 136, 225, 110, 79, 151, 206, 16]);
3342 pub const WIA_CMD_BUILD_DEVICE_TREE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2629459168, 56298, 4562, [132, 22, 0, 192, 79, 163, 97, 69]);
3343 pub const WIA_CMD_CHANGE_DOCUMENT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(82257328, 44206, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
3344 pub const WIA_CMD_DELETE_ALL_ITEMS: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3792224624, 44205, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
3345 pub const WIA_CMD_DELETE_DEVICE_TREE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1937856834, 56298, 4562, [132, 22, 0, 192, 79, 163, 97, 69]);
3346 pub const WIA_CMD_DIAGNOSTIC: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(285168373, 56836, 19696, [165, 173, 105, 31, 141, 206, 1, 65]);
3347 pub const WIA_CMD_FORMAT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3282473898, 63368, 19764, [165, 176, 190, 113, 144, 117, 154, 36]);
3348 pub const WIA_CMD_PAUSE_FEEDER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1352162893, 42418, 19313, [156, 149, 109, 125, 124, 70, 154, 67]);
3349 pub const WIA_CMD_START_FEEDER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1520301769, 24365, 19001, [157, 108, 0, 69, 109, 4, 127, 0]);
3350 pub const WIA_CMD_STOP_FEEDER: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3628576877, 14597, 17820, [149, 9, 155, 41, 205, 182, 145, 231]);
3351 pub const WIA_CMD_SYNCHRONIZE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2603005874, 44205, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
3352 pub const WIA_CMD_TAKE_PICTURE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2945662124, 44205, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
3353 pub const WIA_CMD_UNLOAD_DOCUMENT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(523976078, 44206, 4562, [160, 147, 0, 192, 79, 114, 220, 60]);
3354 pub const WIA_COLOR_DROP_BLUE: u32 = 3u32;
3355 pub const WIA_COLOR_DROP_DISABLED: u32 = 0u32;
3356 pub const WIA_COLOR_DROP_GREEN: u32 = 2u32;
3357 pub const WIA_COLOR_DROP_RED: u32 = 1u32;
3358 pub const WIA_COLOR_DROP_RGB: u32 = 4u32;
3359 pub const WIA_COMPRESSION_AUTO: u32 = 100u32;
3360 pub const WIA_COMPRESSION_BI_RLE4: u32 = 1u32;
3361 pub const WIA_COMPRESSION_BI_RLE8: u32 = 2u32;
3362 pub const WIA_COMPRESSION_G3: u32 = 3u32;
3363 pub const WIA_COMPRESSION_G4: u32 = 4u32;
3364 pub const WIA_COMPRESSION_JBIG: u32 = 6u32;
3365 pub const WIA_COMPRESSION_JPEG: u32 = 5u32;
3366 pub const WIA_COMPRESSION_JPEG2K: u32 = 7u32;
3367 pub const WIA_COMPRESSION_NONE: u32 = 0u32;
3368 pub const WIA_COMPRESSION_PNG: u32 = 8u32;
3369 pub const WIA_DATA_AUTO: u32 = 100u32;
3370 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3371 #[repr(C)]
3372 pub struct WIA_DATA_CALLBACK_HEADER {
3373     pub lSize: i32,
3374     pub guidFormatID: ::windows::runtime::GUID,
3375     pub lBufferSize: i32,
3376     pub lPageCount: i32,
3377 }
3378 impl WIA_DATA_CALLBACK_HEADER {}
3379 impl ::std::default::Default for WIA_DATA_CALLBACK_HEADER {
3380     fn default() -> Self {
3381         unsafe { ::std::mem::zeroed() }
3382     }
3383 }
3384 impl ::std::fmt::Debug for WIA_DATA_CALLBACK_HEADER {
3385     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3386         fmt.debug_struct("WIA_DATA_CALLBACK_HEADER").field("lSize", &self.lSize).field("guidFormatID", &self.guidFormatID).field("lBufferSize", &self.lBufferSize).field("lPageCount", &self.lPageCount).finish()
3387     }
3388 }
3389 impl ::std::cmp::PartialEq for WIA_DATA_CALLBACK_HEADER {
3390     fn eq(&self, other: &Self) -> bool {
3391         self.lSize == other.lSize && self.guidFormatID == other.guidFormatID && self.lBufferSize == other.lBufferSize && self.lPageCount == other.lPageCount
3392     }
3393 }
3394 impl ::std::cmp::Eq for WIA_DATA_CALLBACK_HEADER {}
3395 unsafe impl ::windows::runtime::Abi for WIA_DATA_CALLBACK_HEADER {
3396     type Abi = Self;
3397     type DefaultType = Self;
3398 }
3399 pub const WIA_DATA_COLOR: u32 = 3u32;
3400 pub const WIA_DATA_COLOR_DITHER: u32 = 5u32;
3401 pub const WIA_DATA_COLOR_THRESHOLD: u32 = 4u32;
3402 pub const WIA_DATA_DITHER: u32 = 1u32;
3403 pub const WIA_DATA_GRAYSCALE: u32 = 2u32;
3404 pub const WIA_DATA_RAW_BGR: u32 = 7u32;
3405 pub const WIA_DATA_RAW_CMY: u32 = 10u32;
3406 pub const WIA_DATA_RAW_CMYK: u32 = 11u32;
3407 pub const WIA_DATA_RAW_RGB: u32 = 6u32;
3408 pub const WIA_DATA_RAW_YUV: u32 = 8u32;
3409 pub const WIA_DATA_RAW_YUVK: u32 = 9u32;
3410 pub const WIA_DATA_THRESHOLD: u32 = 0u32;
3411 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3412 #[repr(C)]
3413 #[cfg(feature = "Win32_Foundation")]
3414 pub struct WIA_DATA_TRANSFER_INFO {
3415     pub ulSize: u32,
3416     pub ulSection: u32,
3417     pub ulBufferSize: u32,
3418     pub bDoubleBuffer: super::super::Foundation::BOOL,
3419     pub ulReserved1: u32,
3420     pub ulReserved2: u32,
3421     pub ulReserved3: u32,
3422 }
3423 #[cfg(feature = "Win32_Foundation")]
3424 impl WIA_DATA_TRANSFER_INFO {}
3425 #[cfg(feature = "Win32_Foundation")]
3426 impl ::std::default::Default for WIA_DATA_TRANSFER_INFO {
3427     fn default() -> Self {
3428         unsafe { ::std::mem::zeroed() }
3429     }
3430 }
3431 #[cfg(feature = "Win32_Foundation")]
3432 impl ::std::fmt::Debug for WIA_DATA_TRANSFER_INFO {
3433     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3434         fmt.debug_struct("WIA_DATA_TRANSFER_INFO")
3435             .field("ulSize", &self.ulSize)
3436             .field("ulSection", &self.ulSection)
3437             .field("ulBufferSize", &self.ulBufferSize)
3438             .field("bDoubleBuffer", &self.bDoubleBuffer)
3439             .field("ulReserved1", &self.ulReserved1)
3440             .field("ulReserved2", &self.ulReserved2)
3441             .field("ulReserved3", &self.ulReserved3)
3442             .finish()
3443     }
3444 }
3445 #[cfg(feature = "Win32_Foundation")]
3446 impl ::std::cmp::PartialEq for WIA_DATA_TRANSFER_INFO {
3447     fn eq(&self, other: &Self) -> bool {
3448         self.ulSize == other.ulSize && self.ulSection == other.ulSection && self.ulBufferSize == other.ulBufferSize && self.bDoubleBuffer == other.bDoubleBuffer && self.ulReserved1 == other.ulReserved1 && self.ulReserved2 == other.ulReserved2 && self.ulReserved3 == other.ulReserved3
3449     }
3450 }
3451 #[cfg(feature = "Win32_Foundation")]
3452 impl ::std::cmp::Eq for WIA_DATA_TRANSFER_INFO {}
3453 #[cfg(feature = "Win32_Foundation")]
3454 unsafe impl ::windows::runtime::Abi for WIA_DATA_TRANSFER_INFO {
3455     type Abi = Self;
3456     type DefaultType = Self;
3457 }
3458 pub const WIA_DEPTH_AUTO: u32 = 0u32;
3459 pub const WIA_DEVICE_COMMANDS: u32 = 1u32;
3460 pub const WIA_DEVICE_CONNECTED: u32 = 1u32;
3461 pub const WIA_DEVICE_DIALOG_SINGLE_IMAGE: u32 = 2u32;
3462 pub const WIA_DEVICE_DIALOG_USE_COMMON_UI: u32 = 4u32;
3463 pub const WIA_DEVICE_EVENTS: u32 = 2u32;
3464 pub const WIA_DEVICE_NOT_CONNECTED: u32 = 0u32;
3465 pub const WIA_DEVINFO_ENUM_ALL: u32 = 15u32;
3466 pub const WIA_DEVINFO_ENUM_LOCAL: u32 = 16u32;
3467 #[derive(:: std :: clone :: Clone)]
3468 #[repr(C)]
3469 #[cfg(feature = "Win32_Foundation")]
3470 pub struct WIA_DEV_CAP {
3471     pub guid: ::windows::runtime::GUID,
3472     pub ulFlags: u32,
3473     pub bstrName: super::super::Foundation::BSTR,
3474     pub bstrDescription: super::super::Foundation::BSTR,
3475     pub bstrIcon: super::super::Foundation::BSTR,
3476     pub bstrCommandline: super::super::Foundation::BSTR,
3477 }
3478 #[cfg(feature = "Win32_Foundation")]
3479 impl WIA_DEV_CAP {}
3480 #[cfg(feature = "Win32_Foundation")]
3481 impl ::std::default::Default for WIA_DEV_CAP {
3482     fn default() -> Self {
3483         unsafe { ::std::mem::zeroed() }
3484     }
3485 }
3486 #[cfg(feature = "Win32_Foundation")]
3487 impl ::std::fmt::Debug for WIA_DEV_CAP {
3488     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3489         fmt.debug_struct("WIA_DEV_CAP").field("guid", &self.guid).field("ulFlags", &self.ulFlags).field("bstrName", &self.bstrName).field("bstrDescription", &self.bstrDescription).field("bstrIcon", &self.bstrIcon).field("bstrCommandline", &self.bstrCommandline).finish()
3490     }
3491 }
3492 #[cfg(feature = "Win32_Foundation")]
3493 impl ::std::cmp::PartialEq for WIA_DEV_CAP {
3494     fn eq(&self, other: &Self) -> bool {
3495         self.guid == other.guid && self.ulFlags == other.ulFlags && self.bstrName == other.bstrName && self.bstrDescription == other.bstrDescription && self.bstrIcon == other.bstrIcon && self.bstrCommandline == other.bstrCommandline
3496     }
3497 }
3498 #[cfg(feature = "Win32_Foundation")]
3499 impl ::std::cmp::Eq for WIA_DEV_CAP {}
3500 #[cfg(feature = "Win32_Foundation")]
3501 unsafe impl ::windows::runtime::Abi for WIA_DEV_CAP {
3502     type Abi = ::std::mem::ManuallyDrop<Self>;
3503     type DefaultType = Self;
3504 }
3505 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3506 #[repr(C)]
3507 #[cfg(feature = "Win32_Foundation")]
3508 pub struct WIA_DEV_CAP_DRV {
3509     pub guid: *mut ::windows::runtime::GUID,
3510     pub ulFlags: u32,
3511     pub wszName: super::super::Foundation::PWSTR,
3512     pub wszDescription: super::super::Foundation::PWSTR,
3513     pub wszIcon: super::super::Foundation::PWSTR,
3514 }
3515 #[cfg(feature = "Win32_Foundation")]
3516 impl WIA_DEV_CAP_DRV {}
3517 #[cfg(feature = "Win32_Foundation")]
3518 impl ::std::default::Default for WIA_DEV_CAP_DRV {
3519     fn default() -> Self {
3520         unsafe { ::std::mem::zeroed() }
3521     }
3522 }
3523 #[cfg(feature = "Win32_Foundation")]
3524 impl ::std::fmt::Debug for WIA_DEV_CAP_DRV {
3525     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3526         fmt.debug_struct("WIA_DEV_CAP_DRV").field("guid", &self.guid).field("ulFlags", &self.ulFlags).field("wszName", &self.wszName).field("wszDescription", &self.wszDescription).field("wszIcon", &self.wszIcon).finish()
3527     }
3528 }
3529 #[cfg(feature = "Win32_Foundation")]
3530 impl ::std::cmp::PartialEq for WIA_DEV_CAP_DRV {
3531     fn eq(&self, other: &Self) -> bool {
3532         self.guid == other.guid && self.ulFlags == other.ulFlags && self.wszName == other.wszName && self.wszDescription == other.wszDescription && self.wszIcon == other.wszIcon
3533     }
3534 }
3535 #[cfg(feature = "Win32_Foundation")]
3536 impl ::std::cmp::Eq for WIA_DEV_CAP_DRV {}
3537 #[cfg(feature = "Win32_Foundation")]
3538 unsafe impl ::windows::runtime::Abi for WIA_DEV_CAP_DRV {
3539     type Abi = Self;
3540     type DefaultType = Self;
3541 }
3542 pub const WIA_DIP_BAUDRATE: u32 = 12u32;
3543 pub const WIA_DIP_DEV_DESC: u32 = 4u32;
3544 pub const WIA_DIP_DEV_ID: u32 = 2u32;
3545 pub const WIA_DIP_DEV_NAME: u32 = 7u32;
3546 pub const WIA_DIP_DEV_TYPE: u32 = 5u32;
3547 pub const WIA_DIP_DRIVER_VERSION: u32 = 15u32;
3548 pub const WIA_DIP_FIRST: u32 = 2u32;
3549 pub const WIA_DIP_HW_CONFIG: u32 = 11u32;
3550 pub const WIA_DIP_PNP_ID: u32 = 16u32;
3551 pub const WIA_DIP_PORT_NAME: u32 = 6u32;
3552 pub const WIA_DIP_REMOTE_DEV_ID: u32 = 9u32;
3553 pub const WIA_DIP_SERVER_NAME: u32 = 8u32;
3554 pub const WIA_DIP_STI_DRIVER_VERSION: u32 = 17u32;
3555 pub const WIA_DIP_STI_GEN_CAPABILITIES: u32 = 13u32;
3556 pub const WIA_DIP_UI_CLSID: u32 = 10u32;
3557 pub const WIA_DIP_VEND_DESC: u32 = 3u32;
3558 pub const WIA_DIP_WIA_VERSION: u32 = 14u32;
3559 #[derive(:: std :: clone :: Clone)]
3560 #[repr(C)]
3561 #[cfg(feature = "Win32_Foundation")]
3562 pub struct WIA_DITHER_PATTERN_DATA {
3563     pub lSize: i32,
3564     pub bstrPatternName: super::super::Foundation::BSTR,
3565     pub lPatternWidth: i32,
3566     pub lPatternLength: i32,
3567     pub cbPattern: i32,
3568     pub pbPattern: *mut u8,
3569 }
3570 #[cfg(feature = "Win32_Foundation")]
3571 impl WIA_DITHER_PATTERN_DATA {}
3572 #[cfg(feature = "Win32_Foundation")]
3573 impl ::std::default::Default for WIA_DITHER_PATTERN_DATA {
3574     fn default() -> Self {
3575         unsafe { ::std::mem::zeroed() }
3576     }
3577 }
3578 #[cfg(feature = "Win32_Foundation")]
3579 impl ::std::fmt::Debug for WIA_DITHER_PATTERN_DATA {
3580     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3581         fmt.debug_struct("WIA_DITHER_PATTERN_DATA").field("lSize", &self.lSize).field("bstrPatternName", &self.bstrPatternName).field("lPatternWidth", &self.lPatternWidth).field("lPatternLength", &self.lPatternLength).field("cbPattern", &self.cbPattern).field("pbPattern", &self.pbPattern).finish()
3582     }
3583 }
3584 #[cfg(feature = "Win32_Foundation")]
3585 impl ::std::cmp::PartialEq for WIA_DITHER_PATTERN_DATA {
3586     fn eq(&self, other: &Self) -> bool {
3587         self.lSize == other.lSize && self.bstrPatternName == other.bstrPatternName && self.lPatternWidth == other.lPatternWidth && self.lPatternLength == other.lPatternLength && self.cbPattern == other.cbPattern && self.pbPattern == other.pbPattern
3588     }
3589 }
3590 #[cfg(feature = "Win32_Foundation")]
3591 impl ::std::cmp::Eq for WIA_DITHER_PATTERN_DATA {}
3592 #[cfg(feature = "Win32_Foundation")]
3593 unsafe impl ::windows::runtime::Abi for WIA_DITHER_PATTERN_DATA {
3594     type Abi = ::std::mem::ManuallyDrop<Self>;
3595     type DefaultType = Self;
3596 }
3597 pub const WIA_DONT_SHOW_PREVIEW_CONTROL: u32 = 1u32;
3598 pub const WIA_DONT_USE_SEGMENTATION_FILTER: u32 = 1u32;
3599 pub const WIA_DPA_CONNECT_STATUS: u32 = 1027u32;
3600 pub const WIA_DPA_DEVICE_TIME: u32 = 1028u32;
3601 pub const WIA_DPA_FIRMWARE_VERSION: u32 = 1026u32;
3602 pub const WIA_DPC_ARTIST: u32 = 2091u32;
3603 pub const WIA_DPC_BATTERY_STATUS: u32 = 2065u32;
3604 pub const WIA_DPC_BURST_INTERVAL: u32 = 2075u32;
3605 pub const WIA_DPC_BURST_NUMBER: u32 = 2076u32;
3606 pub const WIA_DPC_CAPTURE_DELAY: u32 = 2082u32;
3607 pub const WIA_DPC_CAPTURE_MODE: u32 = 2081u32;
3608 pub const WIA_DPC_COMPRESSION_SETTING: u32 = 2071u32;
3609 pub const WIA_DPC_CONTRAST: u32 = 2080u32;
3610 pub const WIA_DPC_COPYRIGHT_INFO: u32 = 2092u32;
3611 pub const WIA_DPC_DIGITAL_ZOOM: u32 = 2078u32;
3612 pub const WIA_DPC_DIMENSION: u32 = 2070u32;
3613 pub const WIA_DPC_EFFECT_MODE: u32 = 2077u32;
3614 pub const WIA_DPC_EXPOSURE_COMP: u32 = 2053u32;
3615 pub const WIA_DPC_EXPOSURE_INDEX: u32 = 2083u32;
3616 pub const WIA_DPC_EXPOSURE_METERING_MODE: u32 = 2084u32;
3617 pub const WIA_DPC_EXPOSURE_MODE: u32 = 2052u32;
3618 pub const WIA_DPC_EXPOSURE_TIME: u32 = 2054u32;
3619 pub const WIA_DPC_FLASH_MODE: u32 = 2056u32;
3620 pub const WIA_DPC_FNUMBER: u32 = 2055u32;
3621 pub const WIA_DPC_FOCAL_LENGTH: u32 = 2087u32;
3622 pub const WIA_DPC_FOCUS_DISTANCE: u32 = 2086u32;
3623 pub const WIA_DPC_FOCUS_MANUAL_DIST: u32 = 2058u32;
3624 pub const WIA_DPC_FOCUS_METERING: u32 = 2072u32;
3625 pub const WIA_DPC_FOCUS_METERING_MODE: u32 = 2085u32;
3626 pub const WIA_DPC_FOCUS_MODE: u32 = 2057u32;
3627 pub const WIA_DPC_PAN_POSITION: u32 = 2060u32;
3628 pub const WIA_DPC_PICTURES_REMAINING: u32 = 2051u32;
3629 pub const WIA_DPC_PICTURES_TAKEN: u32 = 2050u32;
3630 pub const WIA_DPC_PICT_HEIGHT: u32 = 2069u32;
3631 pub const WIA_DPC_PICT_WIDTH: u32 = 2068u32;
3632 pub const WIA_DPC_POWER_MODE: u32 = 2064u32;
3633 pub const WIA_DPC_RGB_GAIN: u32 = 2088u32;
3634 pub const WIA_DPC_SHARPNESS: u32 = 2079u32;
3635 pub const WIA_DPC_THUMB_HEIGHT: u32 = 2067u32;
3636 pub const WIA_DPC_THUMB_WIDTH: u32 = 2066u32;
3637 pub const WIA_DPC_TILT_POSITION: u32 = 2061u32;
3638 pub const WIA_DPC_TIMELAPSE_INTERVAL: u32 = 2073u32;
3639 pub const WIA_DPC_TIMELAPSE_NUMBER: u32 = 2074u32;
3640 pub const WIA_DPC_TIMER_MODE: u32 = 2062u32;
3641 pub const WIA_DPC_TIMER_VALUE: u32 = 2063u32;
3642 pub const WIA_DPC_UPLOAD_URL: u32 = 2090u32;
3643 pub const WIA_DPC_WHITE_BALANCE: u32 = 2089u32;
3644 pub const WIA_DPC_ZOOM_POSITION: u32 = 2059u32;
3645 pub const WIA_DPF_FIRST: u32 = 3330u32;
3646 pub const WIA_DPF_MOUNT_POINT: u32 = 3330u32;
3647 pub const WIA_DPS_DEVICE_ID: u32 = 3114u32;
3648 pub const WIA_DPS_DITHER_PATTERN_DATA: u32 = 3085u32;
3649 pub const WIA_DPS_DITHER_SELECT: u32 = 3084u32;
3650 pub const WIA_DPS_DOCUMENT_HANDLING_CAPABILITIES: u32 = 3086u32;
3651 pub const WIA_DPS_DOCUMENT_HANDLING_CAPACITY: u32 = 3089u32;
3652 pub const WIA_DPS_DOCUMENT_HANDLING_SELECT: u32 = 3088u32;
3653 pub const WIA_DPS_DOCUMENT_HANDLING_STATUS: u32 = 3087u32;
3654 pub const WIA_DPS_ENDORSER_CHARACTERS: u32 = 3092u32;
3655 pub const WIA_DPS_ENDORSER_STRING: u32 = 3093u32;
3656 pub const WIA_DPS_FILTER_SELECT: u32 = 3083u32;
3657 pub const WIA_DPS_FIRST: u32 = 3074u32;
3658 pub const WIA_DPS_GLOBAL_IDENTITY: u32 = 3115u32;
3659 pub const WIA_DPS_HORIZONTAL_BED_REGISTRATION: u32 = 3079u32;
3660 pub const WIA_DPS_HORIZONTAL_BED_SIZE: u32 = 3074u32;
3661 pub const WIA_DPS_HORIZONTAL_SHEET_FEED_SIZE: u32 = 3076u32;
3662 pub const WIA_DPS_MAX_SCAN_TIME: u32 = 3095u32;
3663 pub const WIA_DPS_MIN_HORIZONTAL_SHEET_FEED_SIZE: u32 = 3104u32;
3664 pub const WIA_DPS_MIN_VERTICAL_SHEET_FEED_SIZE: u32 = 3105u32;
3665 pub const WIA_DPS_OPTICAL_XRES: u32 = 3090u32;
3666 pub const WIA_DPS_OPTICAL_YRES: u32 = 3091u32;
3667 pub const WIA_DPS_PAD_COLOR: u32 = 3082u32;
3668 pub const WIA_DPS_PAGES: u32 = 3096u32;
3669 pub const WIA_DPS_PAGE_HEIGHT: u32 = 3099u32;
3670 pub const WIA_DPS_PAGE_SIZE: u32 = 3097u32;
3671 pub const WIA_DPS_PAGE_WIDTH: u32 = 3098u32;
3672 pub const WIA_DPS_PLATEN_COLOR: u32 = 3081u32;
3673 pub const WIA_DPS_PREVIEW: u32 = 3100u32;
3674 pub const WIA_DPS_SCAN_AHEAD_PAGES: u32 = 3094u32;
3675 pub const WIA_DPS_SCAN_AVAILABLE_ITEM: u32 = 3116u32;
3676 pub const WIA_DPS_SERVICE_ID: u32 = 3113u32;
3677 pub const WIA_DPS_SHEET_FEEDER_REGISTRATION: u32 = 3078u32;
3678 pub const WIA_DPS_SHOW_PREVIEW_CONTROL: u32 = 3103u32;
3679 pub const WIA_DPS_TRANSPARENCY: u32 = 3101u32;
3680 pub const WIA_DPS_TRANSPARENCY_CAPABILITIES: u32 = 3106u32;
3681 pub const WIA_DPS_TRANSPARENCY_SELECT: u32 = 3102u32;
3682 pub const WIA_DPS_TRANSPARENCY_STATUS: u32 = 3107u32;
3683 pub const WIA_DPS_USER_NAME: u32 = 3112u32;
3684 pub const WIA_DPS_VERTICAL_BED_REGISTRATION: u32 = 3080u32;
3685 pub const WIA_DPS_VERTICAL_BED_SIZE: u32 = 3075u32;
3686 pub const WIA_DPS_VERTICAL_SHEET_FEED_SIZE: u32 = 3077u32;
3687 pub const WIA_DPV_DSHOW_DEVICE_PATH: u32 = 3588u32;
3688 pub const WIA_DPV_IMAGES_DIRECTORY: u32 = 3587u32;
3689 pub const WIA_DPV_LAST_PICTURE_TAKEN: u32 = 3586u32;
3690 pub const WIA_ERROR_BUSY: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320954i32 as _);
3691 pub const WIA_ERROR_COVER_OPEN: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320944i32 as _);
3692 pub const WIA_ERROR_DESTINATION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320942i32 as _);
3693 pub const WIA_ERROR_DEVICE_COMMUNICATION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320950i32 as _);
3694 pub const WIA_ERROR_DEVICE_LOCKED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320947i32 as _);
3695 pub const WIA_ERROR_EXCEPTION_IN_DRIVER: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320946i32 as _);
3696 pub const WIA_ERROR_GENERAL_ERROR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320959i32 as _);
3697 pub const WIA_ERROR_INCORRECT_HARDWARE_SETTING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320948i32 as _);
3698 pub const WIA_ERROR_INVALID_COMMAND: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320949i32 as _);
3699 pub const WIA_ERROR_INVALID_DRIVER_RESPONSE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320945i32 as _);
3700 pub const WIA_ERROR_ITEM_DELETED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320951i32 as _);
3701 pub const WIA_ERROR_LAMP_OFF: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320943i32 as _);
3702 pub const WIA_ERROR_MAXIMUM_PRINTER_ENDORSER_COUNTER: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320939i32 as _);
3703 pub const WIA_ERROR_MULTI_FEED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320940i32 as _);
3704 pub const WIA_ERROR_NETWORK_RESERVATION_FAILED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320941i32 as _);
3705 pub const WIA_ERROR_OFFLINE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320955i32 as _);
3706 pub const WIA_ERROR_PAPER_EMPTY: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320957i32 as _);
3707 pub const WIA_ERROR_PAPER_JAM: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320958i32 as _);
3708 pub const WIA_ERROR_PAPER_PROBLEM: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320956i32 as _);
3709 pub const WIA_ERROR_USER_INTERVENTION: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320952i32 as _);
3710 pub const WIA_ERROR_WARMING_UP: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320953i32 as _);
3711 pub const WIA_EVENT_CANCEL_IO: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3361798072, 40141, 16874, [187, 191, 77, 208, 156, 91, 23, 149]);
3712 pub const WIA_EVENT_COVER_CLOSED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1729405414, 57989, 18060, [155, 140, 218, 125, 196, 203, 170, 5]);
3713 pub const WIA_EVENT_COVER_OPEN: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(429990198, 64028, 20326, [144, 15, 143, 145, 78, 199, 78, 201]);
3714 pub const WIA_EVENT_DEVICE_CONNECTED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2727066334, 25782, 4562, [162, 49, 0, 192, 79, 163, 24, 9]);
3715 pub const WIA_EVENT_DEVICE_DISCONNECTED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(339627651, 25751, 4562, [162, 49, 0, 192, 79, 163, 24, 9]);
3716 pub const WIA_EVENT_DEVICE_NOT_READY: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3633720702, 58588, 19277, [186, 41, 102, 138, 135, 244, 46, 111]);
3717 pub const WIA_EVENT_DEVICE_READY: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1965288556, 39051, 16798, [154, 10, 66, 90, 195, 27, 55, 220]);
3718 pub const WIA_EVENT_FEEDER_EMPTIED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3876277122, 28122, 18107, [143, 249, 83, 206, 177, 160, 62, 53]);
3719 pub const WIA_EVENT_FEEDER_LOADED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3431821342, 39610, 18461, [191, 116, 120, 247, 99, 220, 52, 42]);
3720 pub const WIA_EVENT_FLATBED_LID_CLOSED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4168724239, 39721, 17027, [173, 149, 212, 18, 22, 77, 57, 169]);
3721 pub const WIA_EVENT_FLATBED_LID_OPEN: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3121219107, 17277, 20227, [169, 125, 119, 147, 177, 35, 17, 60]);
3722 pub const WIA_EVENT_HANDLER_NO_ACTION: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3761711997, 57621, 17701, [188, 85, 182, 41, 230, 140, 116, 90]);
3723 pub const WIA_EVENT_HANDLER_PROMPT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1598794448, 19801, 20429, [178, 19, 120, 60, 231, 169, 47, 34]);
3724 pub const WIA_EVENT_ITEM_CREATED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1284460277, 57679, 4562, [179, 38, 0, 192, 79, 104, 206, 97]);
3725 pub const WIA_EVENT_ITEM_DELETED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(488809817, 57679, 4562, [179, 38, 0, 192, 79, 104, 206, 97]);
3726 pub const WIA_EVENT_POWER_RESUME: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1636767038, 63110, 17232, [150, 52, 65, 21, 163, 4, 131, 12]);
3727 pub const WIA_EVENT_POWER_SUSPEND: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2693935097, 50100, 16668, [158, 41, 3, 166, 105, 147, 210, 190]);
3728 pub const WIA_EVENT_SCAN_EMAIL_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3330727150, 21746, 16798, [154, 39, 47, 199, 242, 233, 143, 158]);
3729 pub const WIA_EVENT_SCAN_FAX_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3222189971, 35950, 4562, [151, 122, 0, 0, 248, 122, 146, 111]);
3730 pub const WIA_EVENT_SCAN_FILM_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2603312684, 24965, 17292, [182, 139, 227, 158, 226, 94, 113, 203]);
3731 pub const WIA_EVENT_SCAN_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2797971221, 35950, 4562, [151, 122, 0, 0, 248, 122, 146, 111]);
3732 pub const WIA_EVENT_SCAN_IMAGE2: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4232538049, 51379, 18594, [156, 250, 46, 144, 203, 61, 53, 144]);
3733 pub const WIA_EVENT_SCAN_IMAGE3: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(357443518, 46615, 18003, [172, 197, 15, 215, 189, 76, 101, 206]);
3734 pub const WIA_EVENT_SCAN_IMAGE4: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2791010378, 32572, 17479, [167, 93, 138, 38, 223, 202, 31, 223]);
3735 pub const WIA_EVENT_SCAN_OCR_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2634636169, 14294, 18551, [175, 237, 98, 162, 151, 220, 109, 190]);
3736 pub const WIA_EVENT_SCAN_PRINT_IMAGE: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3024221221, 35950, 4562, [151, 122, 0, 0, 248, 122, 146, 111]);
3737 pub const WIA_EVENT_STI_PROXY: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3608279071, 7949, 16941, [134, 65, 146, 125, 27, 147, 229, 229]);
3738 pub const WIA_EVENT_STORAGE_CREATED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(892537010, 65139, 18120, [137, 94, 250, 69, 81, 204, 200, 90]);
3739 pub const WIA_EVENT_STORAGE_DELETED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1581377374, 37776, 17605, [154, 81, 228, 112, 25, 227, 144, 207]);
3740 pub const WIA_EVENT_TREE_UPDATED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3380976529, 19122, 19670, [161, 252, 88, 46, 236, 85, 229, 133]);
3741 pub const WIA_EVENT_VOLUME_INSERT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2520300541, 53693, 4562, [179, 31, 0, 192, 79, 104, 206, 97]);
3742 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3743 #[repr(C)]
3744 pub struct WIA_EXTENDED_TRANSFER_INFO {
3745     pub ulSize: u32,
3746     pub ulMinBufferSize: u32,
3747     pub ulOptimalBufferSize: u32,
3748     pub ulMaxBufferSize: u32,
3749     pub ulNumBuffers: u32,
3750 }
3751 impl WIA_EXTENDED_TRANSFER_INFO {}
3752 impl ::std::default::Default for WIA_EXTENDED_TRANSFER_INFO {
3753     fn default() -> Self {
3754         unsafe { ::std::mem::zeroed() }
3755     }
3756 }
3757 impl ::std::fmt::Debug for WIA_EXTENDED_TRANSFER_INFO {
3758     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3759         fmt.debug_struct("WIA_EXTENDED_TRANSFER_INFO").field("ulSize", &self.ulSize).field("ulMinBufferSize", &self.ulMinBufferSize).field("ulOptimalBufferSize", &self.ulOptimalBufferSize).field("ulMaxBufferSize", &self.ulMaxBufferSize).field("ulNumBuffers", &self.ulNumBuffers).finish()
3760     }
3761 }
3762 impl ::std::cmp::PartialEq for WIA_EXTENDED_TRANSFER_INFO {
3763     fn eq(&self, other: &Self) -> bool {
3764         self.ulSize == other.ulSize && self.ulMinBufferSize == other.ulMinBufferSize && self.ulOptimalBufferSize == other.ulOptimalBufferSize && self.ulMaxBufferSize == other.ulMaxBufferSize && self.ulNumBuffers == other.ulNumBuffers
3765     }
3766 }
3767 impl ::std::cmp::Eq for WIA_EXTENDED_TRANSFER_INFO {}
3768 unsafe impl ::windows::runtime::Abi for WIA_EXTENDED_TRANSFER_INFO {
3769     type Abi = Self;
3770     type DefaultType = Self;
3771 }
3772 pub const WIA_FEEDER_CONTROL_AUTO: u32 = 0u32;
3773 pub const WIA_FEEDER_CONTROL_MANUAL: u32 = 1u32;
3774 pub const WIA_FILM_BW_NEGATIVE: u32 = 2u32;
3775 pub const WIA_FILM_COLOR_NEGATIVE: u32 = 1u32;
3776 pub const WIA_FILM_COLOR_SLIDE: u32 = 0u32;
3777 pub const WIA_FINAL_SCAN: u32 = 0u32;
3778 pub const WIA_FLAG_NOM: u32 = 0u32;
3779 pub const WIA_FLAG_NUM_ELEMS: u32 = 2u32;
3780 pub const WIA_FLAG_VALUES: u32 = 1u32;
3781 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3782 #[repr(C)]
3783 pub struct WIA_FORMAT_INFO {
3784     pub guidFormatID: ::windows::runtime::GUID,
3785     pub lTymed: i32,
3786 }
3787 impl WIA_FORMAT_INFO {}
3788 impl ::std::default::Default for WIA_FORMAT_INFO {
3789     fn default() -> Self {
3790         unsafe { ::std::mem::zeroed() }
3791     }
3792 }
3793 impl ::std::fmt::Debug for WIA_FORMAT_INFO {
3794     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3795         fmt.debug_struct("WIA_FORMAT_INFO").field("guidFormatID", &self.guidFormatID).field("lTymed", &self.lTymed).finish()
3796     }
3797 }
3798 impl ::std::cmp::PartialEq for WIA_FORMAT_INFO {
3799     fn eq(&self, other: &Self) -> bool {
3800         self.guidFormatID == other.guidFormatID && self.lTymed == other.lTymed
3801     }
3802 }
3803 impl ::std::cmp::Eq for WIA_FORMAT_INFO {}
3804 unsafe impl ::windows::runtime::Abi for WIA_FORMAT_INFO {
3805     type Abi = Self;
3806     type DefaultType = Self;
3807 }
3808 pub const WIA_INTENT_BEST_PREVIEW: u32 = 262144u32;
3809 pub const WIA_INTENT_IMAGE_TYPE_COLOR: u32 = 1u32;
3810 pub const WIA_INTENT_IMAGE_TYPE_GRAYSCALE: u32 = 2u32;
3811 pub const WIA_INTENT_IMAGE_TYPE_MASK: u32 = 15u32;
3812 pub const WIA_INTENT_IMAGE_TYPE_TEXT: u32 = 4u32;
3813 pub const WIA_INTENT_MAXIMIZE_QUALITY: u32 = 131072u32;
3814 pub const WIA_INTENT_MINIMIZE_SIZE: u32 = 65536u32;
3815 pub const WIA_INTENT_NONE: u32 = 0u32;
3816 pub const WIA_INTENT_SIZE_MASK: u32 = 983040u32;
3817 pub const WIA_IPA_ACCESS_RIGHTS: u32 = 4102u32;
3818 pub const WIA_IPA_APP_COLOR_MAPPING: u32 = 4121u32;
3819 pub const WIA_IPA_BITS_PER_CHANNEL: u32 = 4110u32;
3820 pub const WIA_IPA_BUFFER_SIZE: u32 = 4118u32;
3821 pub const WIA_IPA_BYTES_PER_LINE: u32 = 4113u32;
3822 pub const WIA_IPA_CHANNELS_PER_PIXEL: u32 = 4109u32;
3823 pub const WIA_IPA_COLOR_PROFILE: u32 = 4117u32;
3824 pub const WIA_IPA_COMPRESSION: u32 = 4107u32;
3825 pub const WIA_IPA_DATATYPE: u32 = 4103u32;
3826 pub const WIA_IPA_DEPTH: u32 = 4104u32;
3827 pub const WIA_IPA_FILENAME_EXTENSION: u32 = 4123u32;
3828 pub const WIA_IPA_FIRST: u32 = 4098u32;
3829 pub const WIA_IPA_FORMAT: u32 = 4106u32;
3830 pub const WIA_IPA_FULL_ITEM_NAME: u32 = 4099u32;
3831 pub const WIA_IPA_GAMMA_CURVES: u32 = 4115u32;
3832 pub const WIA_IPA_ICM_PROFILE_NAME: u32 = 4120u32;
3833 pub const WIA_IPA_ITEMS_STORED: u32 = 4127u32;
3834 pub const WIA_IPA_ITEM_CATEGORY: u32 = 4125u32;
3835 pub const WIA_IPA_ITEM_FLAGS: u32 = 4101u32;
3836 pub const WIA_IPA_ITEM_NAME: u32 = 4098u32;
3837 pub const WIA_IPA_ITEM_SIZE: u32 = 4116u32;
3838 pub const WIA_IPA_ITEM_TIME: u32 = 4100u32;
3839 pub const WIA_IPA_MIN_BUFFER_SIZE: u32 = 4118u32;
3840 pub const WIA_IPA_NUMBER_OF_LINES: u32 = 4114u32;
3841 pub const WIA_IPA_PIXELS_PER_LINE: u32 = 4112u32;
3842 pub const WIA_IPA_PLANAR: u32 = 4111u32;
3843 pub const WIA_IPA_PREFERRED_FORMAT: u32 = 4105u32;
3844 pub const WIA_IPA_PROP_STREAM_COMPAT_ID: u32 = 4122u32;
3845 pub const WIA_IPA_RAW_BITS_PER_CHANNEL: u32 = 4128u32;
3846 pub const WIA_IPA_REGION_TYPE: u32 = 4119u32;
3847 pub const WIA_IPA_SUPPRESS_PROPERTY_PAGE: u32 = 4124u32;
3848 pub const WIA_IPA_TYMED: u32 = 4108u32;
3849 pub const WIA_IPA_UPLOAD_ITEM_SIZE: u32 = 4126u32;
3850 pub const WIA_IPC_AUDIO_AVAILABLE: u32 = 5125u32;
3851 pub const WIA_IPC_AUDIO_DATA: u32 = 5127u32;
3852 pub const WIA_IPC_AUDIO_DATA_FORMAT: u32 = 5126u32;
3853 pub const WIA_IPC_FIRST: u32 = 5122u32;
3854 pub const WIA_IPC_NUM_PICT_PER_ROW: u32 = 5128u32;
3855 pub const WIA_IPC_SEQUENCE: u32 = 5129u32;
3856 pub const WIA_IPC_THUMBNAIL: u32 = 5122u32;
3857 pub const WIA_IPC_THUMB_HEIGHT: u32 = 5124u32;
3858 pub const WIA_IPC_THUMB_WIDTH: u32 = 5123u32;
3859 pub const WIA_IPC_TIMEDELAY: u32 = 5130u32;
3860 pub const WIA_IPS_ALARM: u32 = 4185u32;
3861 pub const WIA_IPS_AUTO_CROP: u32 = 4170u32;
3862 pub const WIA_IPS_AUTO_DESKEW: u32 = 3107u32;
3863 pub const WIA_IPS_BARCODE_READER: u32 = 4150u32;
3864 pub const WIA_IPS_BARCODE_SEARCH_DIRECTION: u32 = 4152u32;
3865 pub const WIA_IPS_BARCODE_SEARCH_TIMEOUT: u32 = 4154u32;
3866 pub const WIA_IPS_BLANK_PAGES: u32 = 4167u32;
3867 pub const WIA_IPS_BLANK_PAGES_SENSITIVITY: u32 = 4192u32;
3868 pub const WIA_IPS_BRIGHTNESS: u32 = 6154u32;
3869 pub const WIA_IPS_COLOR_DROP: u32 = 4176u32;
3870 pub const WIA_IPS_COLOR_DROP_BLUE: u32 = 4179u32;
3871 pub const WIA_IPS_COLOR_DROP_GREEN: u32 = 4178u32;
3872 pub const WIA_IPS_COLOR_DROP_MULTI: u32 = 4191u32;
3873 pub const WIA_IPS_COLOR_DROP_RED: u32 = 4177u32;
3874 pub const WIA_IPS_CONTRAST: u32 = 6155u32;
3875 pub const WIA_IPS_CUR_INTENT: u32 = 6146u32;
3876 pub const WIA_IPS_DESKEW_X: u32 = 6162u32;
3877 pub const WIA_IPS_DESKEW_Y: u32 = 6163u32;
3878 pub const WIA_IPS_DOCUMENT_HANDLING_SELECT: u32 = 3088u32;
3879 pub const WIA_IPS_ENABLED_BARCODE_TYPES: u32 = 4156u32;
3880 pub const WIA_IPS_ENABLED_PATCH_CODE_TYPES: u32 = 4163u32;
3881 pub const WIA_IPS_FEEDER_CONTROL: u32 = 4182u32;
3882 pub const WIA_IPS_FILM_NODE_NAME: u32 = 4129u32;
3883 pub const WIA_IPS_FILM_SCAN_MODE: u32 = 3104u32;
3884 pub const WIA_IPS_FIRST: u32 = 6146u32;
3885 pub const WIA_IPS_INVERT: u32 = 6160u32;
3886 pub const WIA_IPS_JOB_SEPARATORS: u32 = 4165u32;
3887 pub const WIA_IPS_LAMP: u32 = 3105u32;
3888 pub const WIA_IPS_LAMP_AUTO_OFF: u32 = 3106u32;
3889 pub const WIA_IPS_LONG_DOCUMENT: u32 = 4166u32;
3890 pub const WIA_IPS_MAXIMUM_BARCODES_PER_PAGE: u32 = 4151u32;
3891 pub const WIA_IPS_MAXIMUM_BARCODE_SEARCH_RETRIES: u32 = 4153u32;
3892 pub const WIA_IPS_MAX_HORIZONTAL_SIZE: u32 = 6165u32;
3893 pub const WIA_IPS_MAX_VERTICAL_SIZE: u32 = 6166u32;
3894 pub const WIA_IPS_MICR_READER: u32 = 4164u32;
3895 pub const WIA_IPS_MIN_HORIZONTAL_SIZE: u32 = 6167u32;
3896 pub const WIA_IPS_MIN_VERTICAL_SIZE: u32 = 6168u32;
3897 pub const WIA_IPS_MIRROR: u32 = 6158u32;
3898 pub const WIA_IPS_MULTI_FEED: u32 = 4168u32;
3899 pub const WIA_IPS_MULTI_FEED_DETECT_METHOD: u32 = 4193u32;
3900 pub const WIA_IPS_MULTI_FEED_SENSITIVITY: u32 = 4169u32;
3901 pub const WIA_IPS_OPTICAL_XRES: u32 = 3090u32;
3902 pub const WIA_IPS_OPTICAL_YRES: u32 = 3091u32;
3903 pub const WIA_IPS_ORIENTATION: u32 = 6156u32;
3904 pub const WIA_IPS_OVER_SCAN: u32 = 4171u32;
3905 pub const WIA_IPS_OVER_SCAN_BOTTOM: u32 = 4175u32;
3906 pub const WIA_IPS_OVER_SCAN_LEFT: u32 = 4172u32;
3907 pub const WIA_IPS_OVER_SCAN_RIGHT: u32 = 4173u32;
3908 pub const WIA_IPS_OVER_SCAN_TOP: u32 = 4174u32;
3909 pub const WIA_IPS_PAGES: u32 = 3096u32;
3910 pub const WIA_IPS_PAGE_HEIGHT: u32 = 3099u32;
3911 pub const WIA_IPS_PAGE_SIZE: u32 = 3097u32;
3912 pub const WIA_IPS_PAGE_WIDTH: u32 = 3098u32;
3913 pub const WIA_IPS_PATCH_CODE_READER: u32 = 4157u32;
3914 pub const WIA_IPS_PHOTOMETRIC_INTERP: u32 = 6153u32;
3915 pub const WIA_IPS_PREVIEW: u32 = 3100u32;
3916 pub const WIA_IPS_PREVIEW_TYPE: u32 = 3111u32;
3917 pub const WIA_IPS_PRINTER_ENDORSER: u32 = 4130u32;
3918 pub const WIA_IPS_PRINTER_ENDORSER_CHARACTER_ROTATION: u32 = 4187u32;
3919 pub const WIA_IPS_PRINTER_ENDORSER_COUNTER: u32 = 4132u32;
3920 pub const WIA_IPS_PRINTER_ENDORSER_COUNTER_DIGITS: u32 = 4190u32;
3921 pub const WIA_IPS_PRINTER_ENDORSER_FONT_TYPE: u32 = 4184u32;
3922 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS: u32 = 4142u32;
3923 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_DOWNLOAD: u32 = 4149u32;
3924 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_MAX_HEIGHT: u32 = 4147u32;
3925 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_MAX_WIDTH: u32 = 4145u32;
3926 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_MIN_HEIGHT: u32 = 4146u32;
3927 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_MIN_WIDTH: u32 = 4144u32;
3928 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_POSITION: u32 = 4143u32;
3929 pub const WIA_IPS_PRINTER_ENDORSER_GRAPHICS_UPLOAD: u32 = 4148u32;
3930 pub const WIA_IPS_PRINTER_ENDORSER_INK: u32 = 4186u32;
3931 pub const WIA_IPS_PRINTER_ENDORSER_MAX_CHARACTERS: u32 = 4188u32;
3932 pub const WIA_IPS_PRINTER_ENDORSER_MAX_GRAPHICS: u32 = 4189u32;
3933 pub const WIA_IPS_PRINTER_ENDORSER_NUM_LINES: u32 = 4136u32;
3934 pub const WIA_IPS_PRINTER_ENDORSER_ORDER: u32 = 4131u32;
3935 pub const WIA_IPS_PRINTER_ENDORSER_PADDING: u32 = 4183u32;
3936 pub const WIA_IPS_PRINTER_ENDORSER_STEP: u32 = 4133u32;
3937 pub const WIA_IPS_PRINTER_ENDORSER_STRING: u32 = 4137u32;
3938 pub const WIA_IPS_PRINTER_ENDORSER_TEXT_DOWNLOAD: u32 = 4141u32;
3939 pub const WIA_IPS_PRINTER_ENDORSER_TEXT_UPLOAD: u32 = 4140u32;
3940 pub const WIA_IPS_PRINTER_ENDORSER_VALID_CHARACTERS: u32 = 4138u32;
3941 pub const WIA_IPS_PRINTER_ENDORSER_VALID_FORMAT_SPECIFIERS: u32 = 4139u32;
3942 pub const WIA_IPS_PRINTER_ENDORSER_XOFFSET: u32 = 4134u32;
3943 pub const WIA_IPS_PRINTER_ENDORSER_YOFFSET: u32 = 4135u32;
3944 pub const WIA_IPS_ROTATION: u32 = 6157u32;
3945 pub const WIA_IPS_SCAN_AHEAD: u32 = 4180u32;
3946 pub const WIA_IPS_SCAN_AHEAD_CAPACITY: u32 = 4181u32;
3947 pub const WIA_IPS_SEGMENTATION: u32 = 6164u32;
3948 pub const WIA_IPS_SHEET_FEEDER_REGISTRATION: u32 = 3078u32;
3949 pub const WIA_IPS_SHOW_PREVIEW_CONTROL: u32 = 3103u32;
3950 pub const WIA_IPS_SUPPORTED_BARCODE_TYPES: u32 = 4155u32;
3951 pub const WIA_IPS_SUPPORTED_PATCH_CODE_TYPES: u32 = 4162u32;
3952 pub const WIA_IPS_SUPPORTS_CHILD_ITEM_CREATION: u32 = 3108u32;
3953 pub const WIA_IPS_THRESHOLD: u32 = 6159u32;
3954 pub const WIA_IPS_TRANSFER_CAPABILITIES: u32 = 6169u32;
3955 pub const WIA_IPS_WARM_UP_TIME: u32 = 6161u32;
3956 pub const WIA_IPS_XEXTENT: u32 = 6151u32;
3957 pub const WIA_IPS_XPOS: u32 = 6149u32;
3958 pub const WIA_IPS_XRES: u32 = 6147u32;
3959 pub const WIA_IPS_XSCALING: u32 = 3109u32;
3960 pub const WIA_IPS_YEXTENT: u32 = 6152u32;
3961 pub const WIA_IPS_YPOS: u32 = 6150u32;
3962 pub const WIA_IPS_YRES: u32 = 6148u32;
3963 pub const WIA_IPS_YSCALING: u32 = 3110u32;
3964 pub const WIA_IS_DEFAULT_HANDLER: u32 = 1u32;
3965 pub const WIA_ITEM_CAN_BE_DELETED: u32 = 128u32;
3966 pub const WIA_ITEM_READ: u32 = 1u32;
3967 pub const WIA_ITEM_WRITE: u32 = 2u32;
3968 pub const WIA_LAMP_OFF: u32 = 1u32;
3969 pub const WIA_LAMP_ON: u32 = 0u32;
3970 pub const WIA_LINE_ORDER_BOTTOM_TO_TOP: u32 = 2u32;
3971 pub const WIA_LINE_ORDER_TOP_TO_BOTTOM: u32 = 1u32;
3972 pub const WIA_LIST_COUNT: u32 = 0u32;
3973 pub const WIA_LIST_NOM: u32 = 1u32;
3974 pub const WIA_LIST_NUM_ELEMS: u32 = 2u32;
3975 pub const WIA_LIST_VALUES: u32 = 2u32;
3976 pub const WIA_LONG_DOCUMENT_DISABLED: u32 = 0u32;
3977 pub const WIA_LONG_DOCUMENT_ENABLED: u32 = 1u32;
3978 pub const WIA_LONG_DOCUMENT_SPLIT: u32 = 2u32;
3979 pub const WIA_MAJOR_EVENT_DEVICE_CONNECT: u32 = 1u32;
3980 pub const WIA_MAJOR_EVENT_DEVICE_DISCONNECT: u32 = 2u32;
3981 pub const WIA_MAJOR_EVENT_PICTURE_DELETED: u32 = 4u32;
3982 pub const WIA_MAJOR_EVENT_PICTURE_TAKEN: u32 = 3u32;
3983 pub const WIA_MAX_CTX_SIZE: u32 = 16777216u32;
3984 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
3985 #[repr(C)]
3986 pub struct WIA_MICR {
3987     pub Tag: u32,
3988     pub Version: u32,
3989     pub Size: u32,
3990     pub Placeholder: u16,
3991     pub Reserved: u16,
3992     pub Count: u32,
3993     pub Micr: [WIA_MICR_INFO; 1],
3994 }
3995 impl WIA_MICR {}
3996 impl ::std::default::Default for WIA_MICR {
3997     fn default() -> Self {
3998         unsafe { ::std::mem::zeroed() }
3999     }
4000 }
4001 impl ::std::fmt::Debug for WIA_MICR {
4002     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4003         fmt.debug_struct("WIA_MICR").field("Tag", &self.Tag).field("Version", &self.Version).field("Size", &self.Size).field("Placeholder", &self.Placeholder).field("Reserved", &self.Reserved).field("Count", &self.Count).field("Micr", &self.Micr).finish()
4004     }
4005 }
4006 impl ::std::cmp::PartialEq for WIA_MICR {
4007     fn eq(&self, other: &Self) -> bool {
4008         self.Tag == other.Tag && self.Version == other.Version && self.Size == other.Size && self.Placeholder == other.Placeholder && self.Reserved == other.Reserved && self.Count == other.Count && self.Micr == other.Micr
4009     }
4010 }
4011 impl ::std::cmp::Eq for WIA_MICR {}
4012 unsafe impl ::windows::runtime::Abi for WIA_MICR {
4013     type Abi = Self;
4014     type DefaultType = Self;
4015 }
4016 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4017 #[repr(C)]
4018 pub struct WIA_MICR_INFO {
4019     pub Size: u32,
4020     pub Page: u32,
4021     pub Length: u32,
4022     pub Text: [u16; 1],
4023 }
4024 impl WIA_MICR_INFO {}
4025 impl ::std::default::Default for WIA_MICR_INFO {
4026     fn default() -> Self {
4027         unsafe { ::std::mem::zeroed() }
4028     }
4029 }
4030 impl ::std::fmt::Debug for WIA_MICR_INFO {
4031     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4032         fmt.debug_struct("WIA_MICR_INFO").field("Size", &self.Size).field("Page", &self.Page).field("Length", &self.Length).field("Text", &self.Text).finish()
4033     }
4034 }
4035 impl ::std::cmp::PartialEq for WIA_MICR_INFO {
4036     fn eq(&self, other: &Self) -> bool {
4037         self.Size == other.Size && self.Page == other.Page && self.Length == other.Length && self.Text == other.Text
4038     }
4039 }
4040 impl ::std::cmp::Eq for WIA_MICR_INFO {}
4041 unsafe impl ::windows::runtime::Abi for WIA_MICR_INFO {
4042     type Abi = Self;
4043     type DefaultType = Self;
4044 }
4045 pub const WIA_MICR_READER_AUTO: u32 = 1u32;
4046 pub const WIA_MICR_READER_DISABLED: u32 = 0u32;
4047 pub const WIA_MICR_READER_FEEDER_BACK: u32 = 4u32;
4048 pub const WIA_MICR_READER_FEEDER_DUPLEX: u32 = 5u32;
4049 pub const WIA_MICR_READER_FEEDER_FRONT: u32 = 3u32;
4050 pub const WIA_MICR_READER_FLATBED: u32 = 2u32;
4051 pub const WIA_MULTI_FEED_DETECT_CONTINUE: u32 = 3u32;
4052 pub const WIA_MULTI_FEED_DETECT_DISABLED: u32 = 0u32;
4053 pub const WIA_MULTI_FEED_DETECT_METHOD_LENGTH: u32 = 0u32;
4054 pub const WIA_MULTI_FEED_DETECT_METHOD_OVERLAP: u32 = 1u32;
4055 pub const WIA_MULTI_FEED_DETECT_STOP_ERROR: u32 = 1u32;
4056 pub const WIA_MULTI_FEED_DETECT_STOP_SUCCESS: u32 = 2u32;
4057 pub const WIA_NOTIFICATION_EVENT: u32 = 1u32;
4058 pub const WIA_NUM_DIP: u32 = 16u32;
4059 pub const WIA_NUM_IPC: u32 = 9u32;
4060 pub const WIA_ORDER_BGR: u32 = 1u32;
4061 pub const WIA_ORDER_RGB: u32 = 0u32;
4062 pub const WIA_OVER_SCAN_ALL: u32 = 3u32;
4063 pub const WIA_OVER_SCAN_DISABLED: u32 = 0u32;
4064 pub const WIA_OVER_SCAN_LEFT_RIGHT: u32 = 2u32;
4065 pub const WIA_OVER_SCAN_TOP_BOTTOM: u32 = 1u32;
4066 pub const WIA_PACKED_PIXEL: u32 = 0u32;
4067 pub const WIA_PAGE_A4: u32 = 0u32;
4068 pub const WIA_PAGE_AUTO: u32 = 100u32;
4069 pub const WIA_PAGE_BUSINESSCARD: u32 = 6u32;
4070 pub const WIA_PAGE_CUSTOM: u32 = 2u32;
4071 pub const WIA_PAGE_CUSTOM_BASE: u32 = 32768u32;
4072 pub const WIA_PAGE_DIN_2B: u32 = 52u32;
4073 pub const WIA_PAGE_DIN_4B: u32 = 53u32;
4074 pub const WIA_PAGE_ISO_A0: u32 = 7u32;
4075 pub const WIA_PAGE_ISO_A1: u32 = 8u32;
4076 pub const WIA_PAGE_ISO_A10: u32 = 16u32;
4077 pub const WIA_PAGE_ISO_A2: u32 = 9u32;
4078 pub const WIA_PAGE_ISO_A3: u32 = 10u32;
4079 pub const WIA_PAGE_ISO_A4: u32 = 0u32;
4080 pub const WIA_PAGE_ISO_A5: u32 = 11u32;
4081 pub const WIA_PAGE_ISO_A6: u32 = 12u32;
4082 pub const WIA_PAGE_ISO_A7: u32 = 13u32;
4083 pub const WIA_PAGE_ISO_A8: u32 = 14u32;
4084 pub const WIA_PAGE_ISO_A9: u32 = 15u32;
4085 pub const WIA_PAGE_ISO_B0: u32 = 17u32;
4086 pub const WIA_PAGE_ISO_B1: u32 = 18u32;
4087 pub const WIA_PAGE_ISO_B10: u32 = 27u32;
4088 pub const WIA_PAGE_ISO_B2: u32 = 19u32;
4089 pub const WIA_PAGE_ISO_B3: u32 = 20u32;
4090 pub const WIA_PAGE_ISO_B4: u32 = 21u32;
4091 pub const WIA_PAGE_ISO_B5: u32 = 22u32;
4092 pub const WIA_PAGE_ISO_B6: u32 = 23u32;
4093 pub const WIA_PAGE_ISO_B7: u32 = 24u32;
4094 pub const WIA_PAGE_ISO_B8: u32 = 25u32;
4095 pub const WIA_PAGE_ISO_B9: u32 = 26u32;
4096 pub const WIA_PAGE_ISO_C0: u32 = 28u32;
4097 pub const WIA_PAGE_ISO_C1: u32 = 29u32;
4098 pub const WIA_PAGE_ISO_C10: u32 = 38u32;
4099 pub const WIA_PAGE_ISO_C2: u32 = 30u32;
4100 pub const WIA_PAGE_ISO_C3: u32 = 31u32;
4101 pub const WIA_PAGE_ISO_C4: u32 = 32u32;
4102 pub const WIA_PAGE_ISO_C5: u32 = 33u32;
4103 pub const WIA_PAGE_ISO_C6: u32 = 34u32;
4104 pub const WIA_PAGE_ISO_C7: u32 = 35u32;
4105 pub const WIA_PAGE_ISO_C8: u32 = 36u32;
4106 pub const WIA_PAGE_ISO_C9: u32 = 37u32;
4107 pub const WIA_PAGE_JIS_2A: u32 = 50u32;
4108 pub const WIA_PAGE_JIS_4A: u32 = 51u32;
4109 pub const WIA_PAGE_JIS_B0: u32 = 39u32;
4110 pub const WIA_PAGE_JIS_B1: u32 = 40u32;
4111 pub const WIA_PAGE_JIS_B10: u32 = 49u32;
4112 pub const WIA_PAGE_JIS_B2: u32 = 41u32;
4113 pub const WIA_PAGE_JIS_B3: u32 = 42u32;
4114 pub const WIA_PAGE_JIS_B4: u32 = 43u32;
4115 pub const WIA_PAGE_JIS_B5: u32 = 44u32;
4116 pub const WIA_PAGE_JIS_B6: u32 = 45u32;
4117 pub const WIA_PAGE_JIS_B7: u32 = 46u32;
4118 pub const WIA_PAGE_JIS_B8: u32 = 47u32;
4119 pub const WIA_PAGE_JIS_B9: u32 = 48u32;
4120 pub const WIA_PAGE_LETTER: u32 = 1u32;
4121 pub const WIA_PAGE_USLEDGER: u32 = 4u32;
4122 pub const WIA_PAGE_USLEGAL: u32 = 3u32;
4123 pub const WIA_PAGE_USLETTER: u32 = 1u32;
4124 pub const WIA_PAGE_USSTATEMENT: u32 = 5u32;
4125 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4126 #[repr(C)]
4127 pub struct WIA_PATCH_CODES {
4128     pub Tag: u32,
4129     pub Version: u32,
4130     pub Size: u32,
4131     pub Count: u32,
4132     pub PatchCodes: [WIA_PATCH_CODE_INFO; 1],
4133 }
4134 impl WIA_PATCH_CODES {}
4135 impl ::std::default::Default for WIA_PATCH_CODES {
4136     fn default() -> Self {
4137         unsafe { ::std::mem::zeroed() }
4138     }
4139 }
4140 impl ::std::fmt::Debug for WIA_PATCH_CODES {
4141     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4142         fmt.debug_struct("WIA_PATCH_CODES").field("Tag", &self.Tag).field("Version", &self.Version).field("Size", &self.Size).field("Count", &self.Count).field("PatchCodes", &self.PatchCodes).finish()
4143     }
4144 }
4145 impl ::std::cmp::PartialEq for WIA_PATCH_CODES {
4146     fn eq(&self, other: &Self) -> bool {
4147         self.Tag == other.Tag && self.Version == other.Version && self.Size == other.Size && self.Count == other.Count && self.PatchCodes == other.PatchCodes
4148     }
4149 }
4150 impl ::std::cmp::Eq for WIA_PATCH_CODES {}
4151 unsafe impl ::windows::runtime::Abi for WIA_PATCH_CODES {
4152     type Abi = Self;
4153     type DefaultType = Self;
4154 }
4155 pub const WIA_PATCH_CODE_1: u32 = 1u32;
4156 pub const WIA_PATCH_CODE_10: u32 = 10u32;
4157 pub const WIA_PATCH_CODE_11: u32 = 11u32;
4158 pub const WIA_PATCH_CODE_12: u32 = 12u32;
4159 pub const WIA_PATCH_CODE_13: u32 = 13u32;
4160 pub const WIA_PATCH_CODE_14: u32 = 14u32;
4161 pub const WIA_PATCH_CODE_2: u32 = 2u32;
4162 pub const WIA_PATCH_CODE_3: u32 = 3u32;
4163 pub const WIA_PATCH_CODE_4: u32 = 4u32;
4164 pub const WIA_PATCH_CODE_6: u32 = 6u32;
4165 pub const WIA_PATCH_CODE_7: u32 = 7u32;
4166 pub const WIA_PATCH_CODE_8: u32 = 8u32;
4167 pub const WIA_PATCH_CODE_9: u32 = 9u32;
4168 pub const WIA_PATCH_CODE_CUSTOM_BASE: u32 = 32768u32;
4169 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4170 #[repr(C)]
4171 pub struct WIA_PATCH_CODE_INFO {
4172     pub Type: u32,
4173 }
4174 impl WIA_PATCH_CODE_INFO {}
4175 impl ::std::default::Default for WIA_PATCH_CODE_INFO {
4176     fn default() -> Self {
4177         unsafe { ::std::mem::zeroed() }
4178     }
4179 }
4180 impl ::std::fmt::Debug for WIA_PATCH_CODE_INFO {
4181     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4182         fmt.debug_struct("WIA_PATCH_CODE_INFO").field("Type", &self.Type).finish()
4183     }
4184 }
4185 impl ::std::cmp::PartialEq for WIA_PATCH_CODE_INFO {
4186     fn eq(&self, other: &Self) -> bool {
4187         self.Type == other.Type
4188     }
4189 }
4190 impl ::std::cmp::Eq for WIA_PATCH_CODE_INFO {}
4191 unsafe impl ::windows::runtime::Abi for WIA_PATCH_CODE_INFO {
4192     type Abi = Self;
4193     type DefaultType = Self;
4194 }
4195 pub const WIA_PATCH_CODE_READER_AUTO: u32 = 1u32;
4196 pub const WIA_PATCH_CODE_READER_DISABLED: u32 = 0u32;
4197 pub const WIA_PATCH_CODE_READER_FEEDER_BACK: u32 = 4u32;
4198 pub const WIA_PATCH_CODE_READER_FEEDER_DUPLEX: u32 = 5u32;
4199 pub const WIA_PATCH_CODE_READER_FEEDER_FRONT: u32 = 3u32;
4200 pub const WIA_PATCH_CODE_READER_FLATBED: u32 = 2u32;
4201 pub const WIA_PATCH_CODE_T: u32 = 5u32;
4202 pub const WIA_PATCH_CODE_UNKNOWN: u32 = 0u32;
4203 pub const WIA_PHOTO_WHITE_0: u32 = 1u32;
4204 pub const WIA_PHOTO_WHITE_1: u32 = 0u32;
4205 pub const WIA_PLANAR: u32 = 1u32;
4206 pub const WIA_PREVIEW_SCAN: u32 = 1u32;
4207 pub const WIA_PRINTER_ENDORSER_AFTER_SCAN: u32 = 1u32;
4208 pub const WIA_PRINTER_ENDORSER_AUTO: u32 = 1u32;
4209 pub const WIA_PRINTER_ENDORSER_BEFORE_SCAN: u32 = 0u32;
4210 pub const WIA_PRINTER_ENDORSER_DIGITAL: u32 = 6u32;
4211 pub const WIA_PRINTER_ENDORSER_DISABLED: u32 = 0u32;
4212 pub const WIA_PRINTER_ENDORSER_FEEDER_BACK: u32 = 4u32;
4213 pub const WIA_PRINTER_ENDORSER_FEEDER_DUPLEX: u32 = 5u32;
4214 pub const WIA_PRINTER_ENDORSER_FEEDER_FRONT: u32 = 3u32;
4215 pub const WIA_PRINTER_ENDORSER_FLATBED: u32 = 2u32;
4216 pub const WIA_PRINTER_ENDORSER_GRAPHICS_BACKGROUND: u32 = 8u32;
4217 pub const WIA_PRINTER_ENDORSER_GRAPHICS_BOTTOM: u32 = 3u32;
4218 pub const WIA_PRINTER_ENDORSER_GRAPHICS_BOTTOM_LEFT: u32 = 6u32;
4219 pub const WIA_PRINTER_ENDORSER_GRAPHICS_BOTTOM_RIGHT: u32 = 7u32;
4220 pub const WIA_PRINTER_ENDORSER_GRAPHICS_DEVICE_DEFAULT: u32 = 9u32;
4221 pub const WIA_PRINTER_ENDORSER_GRAPHICS_LEFT: u32 = 0u32;
4222 pub const WIA_PRINTER_ENDORSER_GRAPHICS_RIGHT: u32 = 1u32;
4223 pub const WIA_PRINTER_ENDORSER_GRAPHICS_TOP: u32 = 2u32;
4224 pub const WIA_PRINTER_ENDORSER_GRAPHICS_TOP_LEFT: u32 = 4u32;
4225 pub const WIA_PRINTER_ENDORSER_GRAPHICS_TOP_RIGHT: u32 = 5u32;
4226 pub const WIA_PRINT_AM_PM: u32 = 9u32;
4227 pub const WIA_PRINT_DATE: u32 = 0u32;
4228 pub const WIA_PRINT_DAY: u32 = 3u32;
4229 pub const WIA_PRINT_FONT_BOLD: u32 = 1u32;
4230 pub const WIA_PRINT_FONT_EXTRA_BOLD: u32 = 2u32;
4231 pub const WIA_PRINT_FONT_ITALIC: u32 = 5u32;
4232 pub const WIA_PRINT_FONT_ITALIC_BOLD: u32 = 3u32;
4233 pub const WIA_PRINT_FONT_ITALIC_EXTRA_BOLD: u32 = 4u32;
4234 pub const WIA_PRINT_FONT_LARGE: u32 = 12u32;
4235 pub const WIA_PRINT_FONT_LARGE_BOLD: u32 = 13u32;
4236 pub const WIA_PRINT_FONT_LARGE_EXTRA_BOLD: u32 = 14u32;
4237 pub const WIA_PRINT_FONT_LARGE_ITALIC: u32 = 17u32;
4238 pub const WIA_PRINT_FONT_LARGE_ITALIC_BOLD: u32 = 15u32;
4239 pub const WIA_PRINT_FONT_LARGE_ITALIC_EXTRA_BOLD: u32 = 16u32;
4240 pub const WIA_PRINT_FONT_NORMAL: u32 = 0u32;
4241 pub const WIA_PRINT_FONT_SMALL: u32 = 6u32;
4242 pub const WIA_PRINT_FONT_SMALL_BOLD: u32 = 7u32;
4243 pub const WIA_PRINT_FONT_SMALL_EXTRA_BOLD: u32 = 8u32;
4244 pub const WIA_PRINT_FONT_SMALL_ITALIC: u32 = 11u32;
4245 pub const WIA_PRINT_FONT_SMALL_ITALIC_BOLD: u32 = 9u32;
4246 pub const WIA_PRINT_FONT_SMALL_ITALIC_EXTRA_BOLD: u32 = 10u32;
4247 pub const WIA_PRINT_HOUR_12H: u32 = 8u32;
4248 pub const WIA_PRINT_HOUR_24H: u32 = 7u32;
4249 pub const WIA_PRINT_IMAGE: u32 = 13u32;
4250 pub const WIA_PRINT_MILLISECOND: u32 = 14u32;
4251 pub const WIA_PRINT_MINUTE: u32 = 10u32;
4252 pub const WIA_PRINT_MONTH: u32 = 2u32;
4253 pub const WIA_PRINT_MONTH_NAME: u32 = 15u32;
4254 pub const WIA_PRINT_MONTH_SHORT: u32 = 16u32;
4255 pub const WIA_PRINT_PADDING_BLANK: u32 = 2u32;
4256 pub const WIA_PRINT_PADDING_NONE: u32 = 0u32;
4257 pub const WIA_PRINT_PADDING_ZERO: u32 = 1u32;
4258 pub const WIA_PRINT_PAGE_COUNT: u32 = 12u32;
4259 pub const WIA_PRINT_SECOND: u32 = 11u32;
4260 pub const WIA_PRINT_TIME_12H: u32 = 6u32;
4261 pub const WIA_PRINT_TIME_24H: u32 = 5u32;
4262 pub const WIA_PRINT_WEEK_DAY: u32 = 4u32;
4263 pub const WIA_PRINT_WEEK_DAY_SHORT: u32 = 17u32;
4264 pub const WIA_PRINT_YEAR: u32 = 1u32;
4265 pub const WIA_PRIVATE_DEVPROP: u32 = 38914u32;
4266 pub const WIA_PRIVATE_ITEMPROP: u32 = 71682u32;
4267 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4268 #[repr(C)]
4269 #[cfg(feature = "Win32_Foundation")]
4270 pub struct WIA_PROPERTY_CONTEXT {
4271     pub cProps: u32,
4272     pub pProps: *mut u32,
4273     pub pChanged: *mut super::super::Foundation::BOOL,
4274 }
4275 #[cfg(feature = "Win32_Foundation")]
4276 impl WIA_PROPERTY_CONTEXT {}
4277 #[cfg(feature = "Win32_Foundation")]
4278 impl ::std::default::Default for WIA_PROPERTY_CONTEXT {
4279     fn default() -> Self {
4280         unsafe { ::std::mem::zeroed() }
4281     }
4282 }
4283 #[cfg(feature = "Win32_Foundation")]
4284 impl ::std::fmt::Debug for WIA_PROPERTY_CONTEXT {
4285     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4286         fmt.debug_struct("WIA_PROPERTY_CONTEXT").field("cProps", &self.cProps).field("pProps", &self.pProps).field("pChanged", &self.pChanged).finish()
4287     }
4288 }
4289 #[cfg(feature = "Win32_Foundation")]
4290 impl ::std::cmp::PartialEq for WIA_PROPERTY_CONTEXT {
4291     fn eq(&self, other: &Self) -> bool {
4292         self.cProps == other.cProps && self.pProps == other.pProps && self.pChanged == other.pChanged
4293     }
4294 }
4295 #[cfg(feature = "Win32_Foundation")]
4296 impl ::std::cmp::Eq for WIA_PROPERTY_CONTEXT {}
4297 #[cfg(feature = "Win32_Foundation")]
4298 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_CONTEXT {
4299     type Abi = Self;
4300     type DefaultType = Self;
4301 }
4302 #[cfg(feature = "Win32_Foundation")]
4303 impl ::std::clone::Clone for WIA_PROPERTY_INFO {
4304     fn clone(&self) -> Self {
4305         unimplemented!()
4306     }
4307 }
4308 #[repr(C)]
4309 #[cfg(feature = "Win32_Foundation")]
4310 pub struct WIA_PROPERTY_INFO {
4311     pub lAccessFlags: u32,
4312     pub vt: u16,
4313     pub ValidVal: WIA_PROPERTY_INFO_0,
4314 }
4315 #[cfg(feature = "Win32_Foundation")]
4316 impl WIA_PROPERTY_INFO {}
4317 #[cfg(feature = "Win32_Foundation")]
4318 impl ::std::default::Default for WIA_PROPERTY_INFO {
4319     fn default() -> Self {
4320         unsafe { ::std::mem::zeroed() }
4321     }
4322 }
4323 #[cfg(feature = "Win32_Foundation")]
4324 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO {
4325     fn eq(&self, _other: &Self) -> bool {
4326         unimplemented!()
4327     }
4328 }
4329 #[cfg(feature = "Win32_Foundation")]
4330 impl ::std::cmp::Eq for WIA_PROPERTY_INFO {}
4331 #[cfg(feature = "Win32_Foundation")]
4332 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO {
4333     type Abi = ::std::mem::ManuallyDrop<Self>;
4334     type DefaultType = Self;
4335 }
4336 #[cfg(feature = "Win32_Foundation")]
4337 impl ::std::clone::Clone for WIA_PROPERTY_INFO_0 {
4338     fn clone(&self) -> Self {
4339         unimplemented!()
4340     }
4341 }
4342 #[repr(C)]
4343 #[cfg(feature = "Win32_Foundation")]
4344 pub union WIA_PROPERTY_INFO_0 {
4345     pub Range: WIA_PROPERTY_INFO_0_7,
4346     pub RangeFloat: WIA_PROPERTY_INFO_0_6,
4347     pub List: WIA_PROPERTY_INFO_0_4,
4348     pub ListFloat: WIA_PROPERTY_INFO_0_2,
4349     pub ListGuid: WIA_PROPERTY_INFO_0_3,
4350     pub ListBStr: ::std::mem::ManuallyDrop<WIA_PROPERTY_INFO_0_1>,
4351     pub Flag: WIA_PROPERTY_INFO_0_0,
4352     pub None: WIA_PROPERTY_INFO_0_5,
4353 }
4354 #[cfg(feature = "Win32_Foundation")]
4355 impl WIA_PROPERTY_INFO_0 {}
4356 #[cfg(feature = "Win32_Foundation")]
4357 impl ::std::default::Default for WIA_PROPERTY_INFO_0 {
4358     fn default() -> Self {
4359         unsafe { ::std::mem::zeroed() }
4360     }
4361 }
4362 #[cfg(feature = "Win32_Foundation")]
4363 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0 {
4364     fn eq(&self, _other: &Self) -> bool {
4365         unimplemented!()
4366     }
4367 }
4368 #[cfg(feature = "Win32_Foundation")]
4369 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0 {}
4370 #[cfg(feature = "Win32_Foundation")]
4371 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0 {
4372     type Abi = ::std::mem::ManuallyDrop<Self>;
4373     type DefaultType = Self;
4374 }
4375 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4376 #[repr(C)]
4377 pub struct WIA_PROPERTY_INFO_0_0 {
4378     pub Nom: i32,
4379     pub ValidBits: i32,
4380 }
4381 impl WIA_PROPERTY_INFO_0_0 {}
4382 impl ::std::default::Default for WIA_PROPERTY_INFO_0_0 {
4383     fn default() -> Self {
4384         unsafe { ::std::mem::zeroed() }
4385     }
4386 }
4387 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_0 {
4388     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4389         fmt.debug_struct("_Flag_e__Struct").field("Nom", &self.Nom).field("ValidBits", &self.ValidBits).finish()
4390     }
4391 }
4392 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_0 {
4393     fn eq(&self, other: &Self) -> bool {
4394         self.Nom == other.Nom && self.ValidBits == other.ValidBits
4395     }
4396 }
4397 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_0 {}
4398 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_0 {
4399     type Abi = Self;
4400     type DefaultType = Self;
4401 }
4402 #[derive(:: std :: clone :: Clone)]
4403 #[repr(C)]
4404 #[cfg(feature = "Win32_Foundation")]
4405 pub struct WIA_PROPERTY_INFO_0_1 {
4406     pub cNumList: i32,
4407     pub Nom: super::super::Foundation::BSTR,
4408     pub pList: *mut super::super::Foundation::BSTR,
4409 }
4410 #[cfg(feature = "Win32_Foundation")]
4411 impl WIA_PROPERTY_INFO_0_1 {}
4412 #[cfg(feature = "Win32_Foundation")]
4413 impl ::std::default::Default for WIA_PROPERTY_INFO_0_1 {
4414     fn default() -> Self {
4415         unsafe { ::std::mem::zeroed() }
4416     }
4417 }
4418 #[cfg(feature = "Win32_Foundation")]
4419 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_1 {
4420     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4421         fmt.debug_struct("_ListBStr_e__Struct").field("cNumList", &self.cNumList).field("Nom", &self.Nom).field("pList", &self.pList).finish()
4422     }
4423 }
4424 #[cfg(feature = "Win32_Foundation")]
4425 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_1 {
4426     fn eq(&self, other: &Self) -> bool {
4427         self.cNumList == other.cNumList && self.Nom == other.Nom && self.pList == other.pList
4428     }
4429 }
4430 #[cfg(feature = "Win32_Foundation")]
4431 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_1 {}
4432 #[cfg(feature = "Win32_Foundation")]
4433 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_1 {
4434     type Abi = ::std::mem::ManuallyDrop<Self>;
4435     type DefaultType = Self;
4436 }
4437 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4438 #[repr(C)]
4439 pub struct WIA_PROPERTY_INFO_0_2 {
4440     pub cNumList: i32,
4441     pub Nom: f64,
4442     pub pList: *mut u8,
4443 }
4444 impl WIA_PROPERTY_INFO_0_2 {}
4445 impl ::std::default::Default for WIA_PROPERTY_INFO_0_2 {
4446     fn default() -> Self {
4447         unsafe { ::std::mem::zeroed() }
4448     }
4449 }
4450 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_2 {
4451     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4452         fmt.debug_struct("_ListFloat_e__Struct").field("cNumList", &self.cNumList).field("Nom", &self.Nom).field("pList", &self.pList).finish()
4453     }
4454 }
4455 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_2 {
4456     fn eq(&self, other: &Self) -> bool {
4457         self.cNumList == other.cNumList && self.Nom == other.Nom && self.pList == other.pList
4458     }
4459 }
4460 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_2 {}
4461 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_2 {
4462     type Abi = Self;
4463     type DefaultType = Self;
4464 }
4465 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4466 #[repr(C)]
4467 pub struct WIA_PROPERTY_INFO_0_3 {
4468     pub cNumList: i32,
4469     pub Nom: ::windows::runtime::GUID,
4470     pub pList: *mut ::windows::runtime::GUID,
4471 }
4472 impl WIA_PROPERTY_INFO_0_3 {}
4473 impl ::std::default::Default for WIA_PROPERTY_INFO_0_3 {
4474     fn default() -> Self {
4475         unsafe { ::std::mem::zeroed() }
4476     }
4477 }
4478 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_3 {
4479     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4480         fmt.debug_struct("_ListGuid_e__Struct").field("cNumList", &self.cNumList).field("Nom", &self.Nom).field("pList", &self.pList).finish()
4481     }
4482 }
4483 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_3 {
4484     fn eq(&self, other: &Self) -> bool {
4485         self.cNumList == other.cNumList && self.Nom == other.Nom && self.pList == other.pList
4486     }
4487 }
4488 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_3 {}
4489 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_3 {
4490     type Abi = Self;
4491     type DefaultType = Self;
4492 }
4493 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4494 #[repr(C)]
4495 pub struct WIA_PROPERTY_INFO_0_4 {
4496     pub cNumList: i32,
4497     pub Nom: i32,
4498     pub pList: *mut u8,
4499 }
4500 impl WIA_PROPERTY_INFO_0_4 {}
4501 impl ::std::default::Default for WIA_PROPERTY_INFO_0_4 {
4502     fn default() -> Self {
4503         unsafe { ::std::mem::zeroed() }
4504     }
4505 }
4506 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_4 {
4507     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4508         fmt.debug_struct("_List_e__Struct").field("cNumList", &self.cNumList).field("Nom", &self.Nom).field("pList", &self.pList).finish()
4509     }
4510 }
4511 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_4 {
4512     fn eq(&self, other: &Self) -> bool {
4513         self.cNumList == other.cNumList && self.Nom == other.Nom && self.pList == other.pList
4514     }
4515 }
4516 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_4 {}
4517 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_4 {
4518     type Abi = Self;
4519     type DefaultType = Self;
4520 }
4521 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4522 #[repr(C)]
4523 pub struct WIA_PROPERTY_INFO_0_5 {
4524     pub Dummy: i32,
4525 }
4526 impl WIA_PROPERTY_INFO_0_5 {}
4527 impl ::std::default::Default for WIA_PROPERTY_INFO_0_5 {
4528     fn default() -> Self {
4529         unsafe { ::std::mem::zeroed() }
4530     }
4531 }
4532 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_5 {
4533     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4534         fmt.debug_struct("_None_e__Struct").field("Dummy", &self.Dummy).finish()
4535     }
4536 }
4537 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_5 {
4538     fn eq(&self, other: &Self) -> bool {
4539         self.Dummy == other.Dummy
4540     }
4541 }
4542 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_5 {}
4543 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_5 {
4544     type Abi = Self;
4545     type DefaultType = Self;
4546 }
4547 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4548 #[repr(C)]
4549 pub struct WIA_PROPERTY_INFO_0_6 {
4550     pub Min: f64,
4551     pub Nom: f64,
4552     pub Max: f64,
4553     pub Inc: f64,
4554 }
4555 impl WIA_PROPERTY_INFO_0_6 {}
4556 impl ::std::default::Default for WIA_PROPERTY_INFO_0_6 {
4557     fn default() -> Self {
4558         unsafe { ::std::mem::zeroed() }
4559     }
4560 }
4561 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_6 {
4562     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4563         fmt.debug_struct("_RangeFloat_e__Struct").field("Min", &self.Min).field("Nom", &self.Nom).field("Max", &self.Max).field("Inc", &self.Inc).finish()
4564     }
4565 }
4566 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_6 {
4567     fn eq(&self, other: &Self) -> bool {
4568         self.Min == other.Min && self.Nom == other.Nom && self.Max == other.Max && self.Inc == other.Inc
4569     }
4570 }
4571 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_6 {}
4572 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_6 {
4573     type Abi = Self;
4574     type DefaultType = Self;
4575 }
4576 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4577 #[repr(C)]
4578 pub struct WIA_PROPERTY_INFO_0_7 {
4579     pub Min: i32,
4580     pub Nom: i32,
4581     pub Max: i32,
4582     pub Inc: i32,
4583 }
4584 impl WIA_PROPERTY_INFO_0_7 {}
4585 impl ::std::default::Default for WIA_PROPERTY_INFO_0_7 {
4586     fn default() -> Self {
4587         unsafe { ::std::mem::zeroed() }
4588     }
4589 }
4590 impl ::std::fmt::Debug for WIA_PROPERTY_INFO_0_7 {
4591     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4592         fmt.debug_struct("_Range_e__Struct").field("Min", &self.Min).field("Nom", &self.Nom).field("Max", &self.Max).field("Inc", &self.Inc).finish()
4593     }
4594 }
4595 impl ::std::cmp::PartialEq for WIA_PROPERTY_INFO_0_7 {
4596     fn eq(&self, other: &Self) -> bool {
4597         self.Min == other.Min && self.Nom == other.Nom && self.Max == other.Max && self.Inc == other.Inc
4598     }
4599 }
4600 impl ::std::cmp::Eq for WIA_PROPERTY_INFO_0_7 {}
4601 unsafe impl ::windows::runtime::Abi for WIA_PROPERTY_INFO_0_7 {
4602     type Abi = Self;
4603     type DefaultType = Self;
4604 }
4605 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4606 #[repr(C)]
4607 #[cfg(feature = "Win32_Foundation")]
4608 pub struct WIA_PROPID_TO_NAME {
4609     pub propid: u32,
4610     pub pszName: super::super::Foundation::PWSTR,
4611 }
4612 #[cfg(feature = "Win32_Foundation")]
4613 impl WIA_PROPID_TO_NAME {}
4614 #[cfg(feature = "Win32_Foundation")]
4615 impl ::std::default::Default for WIA_PROPID_TO_NAME {
4616     fn default() -> Self {
4617         unsafe { ::std::mem::zeroed() }
4618     }
4619 }
4620 #[cfg(feature = "Win32_Foundation")]
4621 impl ::std::fmt::Debug for WIA_PROPID_TO_NAME {
4622     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4623         fmt.debug_struct("WIA_PROPID_TO_NAME").field("propid", &self.propid).field("pszName", &self.pszName).finish()
4624     }
4625 }
4626 #[cfg(feature = "Win32_Foundation")]
4627 impl ::std::cmp::PartialEq for WIA_PROPID_TO_NAME {
4628     fn eq(&self, other: &Self) -> bool {
4629         self.propid == other.propid && self.pszName == other.pszName
4630     }
4631 }
4632 #[cfg(feature = "Win32_Foundation")]
4633 impl ::std::cmp::Eq for WIA_PROPID_TO_NAME {}
4634 #[cfg(feature = "Win32_Foundation")]
4635 unsafe impl ::windows::runtime::Abi for WIA_PROPID_TO_NAME {
4636     type Abi = Self;
4637     type DefaultType = Self;
4638 }
4639 pub const WIA_PROPPAGE_CAMERA_ITEM_GENERAL: u32 = 2u32;
4640 pub const WIA_PROPPAGE_DEVICE_GENERAL: u32 = 4u32;
4641 pub const WIA_PROPPAGE_SCANNER_ITEM_GENERAL: u32 = 1u32;
4642 pub const WIA_PROP_CACHEABLE: u32 = 65536u32;
4643 pub const WIA_PROP_FLAG: u32 = 64u32;
4644 pub const WIA_PROP_LIST: u32 = 32u32;
4645 pub const WIA_PROP_NONE: u32 = 8u32;
4646 pub const WIA_PROP_RANGE: u32 = 16u32;
4647 pub const WIA_PROP_READ: u32 = 1u32;
4648 pub const WIA_PROP_SYNC_REQUIRED: u32 = 4u32;
4649 pub const WIA_PROP_WRITE: u32 = 2u32;
4650 pub const WIA_RANGE_MAX: u32 = 2u32;
4651 pub const WIA_RANGE_MIN: u32 = 0u32;
4652 pub const WIA_RANGE_NOM: u32 = 1u32;
4653 pub const WIA_RANGE_NUM_ELEMS: u32 = 4u32;
4654 pub const WIA_RANGE_STEP: u32 = 3u32;
4655 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4656 #[repr(C)]
4657 pub struct WIA_RAW_HEADER {
4658     pub Tag: u32,
4659     pub Version: u32,
4660     pub HeaderSize: u32,
4661     pub XRes: u32,
4662     pub YRes: u32,
4663     pub XExtent: u32,
4664     pub YExtent: u32,
4665     pub BytesPerLine: u32,
4666     pub BitsPerPixel: u32,
4667     pub ChannelsPerPixel: u32,
4668     pub DataType: u32,
4669     pub BitsPerChannel: [u8; 8],
4670     pub Compression: u32,
4671     pub PhotometricInterp: u32,
4672     pub LineOrder: u32,
4673     pub RawDataOffset: u32,
4674     pub RawDataSize: u32,
4675     pub PaletteOffset: u32,
4676     pub PaletteSize: u32,
4677 }
4678 impl WIA_RAW_HEADER {}
4679 impl ::std::default::Default for WIA_RAW_HEADER {
4680     fn default() -> Self {
4681         unsafe { ::std::mem::zeroed() }
4682     }
4683 }
4684 impl ::std::fmt::Debug for WIA_RAW_HEADER {
4685     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4686         fmt.debug_struct("WIA_RAW_HEADER")
4687             .field("Tag", &self.Tag)
4688             .field("Version", &self.Version)
4689             .field("HeaderSize", &self.HeaderSize)
4690             .field("XRes", &self.XRes)
4691             .field("YRes", &self.YRes)
4692             .field("XExtent", &self.XExtent)
4693             .field("YExtent", &self.YExtent)
4694             .field("BytesPerLine", &self.BytesPerLine)
4695             .field("BitsPerPixel", &self.BitsPerPixel)
4696             .field("ChannelsPerPixel", &self.ChannelsPerPixel)
4697             .field("DataType", &self.DataType)
4698             .field("BitsPerChannel", &self.BitsPerChannel)
4699             .field("Compression", &self.Compression)
4700             .field("PhotometricInterp", &self.PhotometricInterp)
4701             .field("LineOrder", &self.LineOrder)
4702             .field("RawDataOffset", &self.RawDataOffset)
4703             .field("RawDataSize", &self.RawDataSize)
4704             .field("PaletteOffset", &self.PaletteOffset)
4705             .field("PaletteSize", &self.PaletteSize)
4706             .finish()
4707     }
4708 }
4709 impl ::std::cmp::PartialEq for WIA_RAW_HEADER {
4710     fn eq(&self, other: &Self) -> bool {
4711         self.Tag == other.Tag
4712             && self.Version == other.Version
4713             && self.HeaderSize == other.HeaderSize
4714             && self.XRes == other.XRes
4715             && self.YRes == other.YRes
4716             && self.XExtent == other.XExtent
4717             && self.YExtent == other.YExtent
4718             && self.BytesPerLine == other.BytesPerLine
4719             && self.BitsPerPixel == other.BitsPerPixel
4720             && self.ChannelsPerPixel == other.ChannelsPerPixel
4721             && self.DataType == other.DataType
4722             && self.BitsPerChannel == other.BitsPerChannel
4723             && self.Compression == other.Compression
4724             && self.PhotometricInterp == other.PhotometricInterp
4725             && self.LineOrder == other.LineOrder
4726             && self.RawDataOffset == other.RawDataOffset
4727             && self.RawDataSize == other.RawDataSize
4728             && self.PaletteOffset == other.PaletteOffset
4729             && self.PaletteSize == other.PaletteSize
4730     }
4731 }
4732 impl ::std::cmp::Eq for WIA_RAW_HEADER {}
4733 unsafe impl ::windows::runtime::Abi for WIA_RAW_HEADER {
4734     type Abi = Self;
4735     type DefaultType = Self;
4736 }
4737 pub const WIA_REGISTER_EVENT_CALLBACK: u32 = 1u32;
4738 pub const WIA_RESERVED_FOR_NEW_PROPS: u32 = 1024u32;
4739 pub const WIA_SCAN_AHEAD_ALL: u32 = 0u32;
4740 pub const WIA_SCAN_AHEAD_DISABLED: u32 = 0u32;
4741 pub const WIA_SCAN_AHEAD_ENABLED: u32 = 1u32;
4742 pub const WIA_SELECT_DEVICE_NODEFAULT: u32 = 1u32;
4743 pub const WIA_SEPARATOR_DETECT_NOSCAN_CONTINUE: u32 = 3u32;
4744 pub const WIA_SEPARATOR_DETECT_NOSCAN_STOP: u32 = 4u32;
4745 pub const WIA_SEPARATOR_DETECT_SCAN_CONTINUE: u32 = 1u32;
4746 pub const WIA_SEPARATOR_DETECT_SCAN_STOP: u32 = 2u32;
4747 pub const WIA_SEPARATOR_DISABLED: u32 = 0u32;
4748 pub const WIA_SET_DEFAULT_HANDLER: u32 = 4u32;
4749 pub const WIA_SHOW_PREVIEW_CONTROL: u32 = 0u32;
4750 pub const WIA_STATUS_CALIBRATING: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162691i32 as _);
4751 pub const WIA_STATUS_CLEAR: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162696i32 as _);
4752 pub const WIA_STATUS_END_OF_MEDIA: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162689i32 as _);
4753 pub const WIA_STATUS_NETWORK_DEVICE_RESERVED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162695i32 as _);
4754 pub const WIA_STATUS_NOT_HANDLED: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162698i32 as _);
4755 pub const WIA_STATUS_RESERVING_NETWORK_DEVICE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162694i32 as _);
4756 pub const WIA_STATUS_SKIP_ITEM: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162697i32 as _);
4757 pub const WIA_STATUS_WARMING_UP: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162690i32 as _);
4758 pub const WIA_S_CHANGE_DEVICE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(2162699i32 as _);
4759 pub const WIA_S_NO_DEVICE_AVAILABLE: ::windows::runtime::HRESULT = ::windows::runtime::HRESULT(-2145320939i32 as _);
4760 pub const WIA_TRANSFER_ACQUIRE_CHILDREN: u32 = 1u32;
4761 pub const WIA_TRANSFER_CHILDREN_SINGLE_SCAN: u32 = 1u32;
4762 pub const WIA_TRANSFER_MSG_DEVICE_STATUS: u32 = 5u32;
4763 pub const WIA_TRANSFER_MSG_END_OF_STREAM: u32 = 2u32;
4764 pub const WIA_TRANSFER_MSG_END_OF_TRANSFER: u32 = 3u32;
4765 pub const WIA_TRANSFER_MSG_NEW_PAGE: u32 = 6u32;
4766 pub const WIA_TRANSFER_MSG_STATUS: u32 = 1u32;
4767 pub const WIA_UNREGISTER_EVENT_CALLBACK: u32 = 2u32;
4768 pub const WIA_USE_SEGMENTATION_FILTER: u32 = 0u32;
4769 pub const WIA_WSD_FRIENDLY_NAME: u32 = 38920u32;
4770 pub const WIA_WSD_MANUFACTURER: u32 = 38914u32;
4771 pub const WIA_WSD_MANUFACTURER_URL: u32 = 38915u32;
4772 pub const WIA_WSD_MODEL_NAME: u32 = 38916u32;
4773 pub const WIA_WSD_MODEL_NUMBER: u32 = 38917u32;
4774 pub const WIA_WSD_MODEL_URL: u32 = 38918u32;
4775 pub const WIA_WSD_PRESENTATION_URL: u32 = 38919u32;
4776 pub const WIA_WSD_SCAN_AVAILABLE_ITEM: u32 = 38922u32;
4777 pub const WIA_WSD_SERIAL_NUMBER: u32 = 38921u32;
4778 pub const WiaAudFmt_AIFF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1726136143, 46844, 17471, [148, 200, 47, 51, 200, 166, 90, 175]);
4779 pub const WiaAudFmt_MP3: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(264008187, 17343, 18930, [145, 144, 230, 254, 207, 243, 126, 84]);
4780 pub const WiaAudFmt_WAV: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4162380102, 1967, 16639, [174, 85, 190, 143, 44, 6, 93, 190]);
4781 pub const WiaAudFmt_WMA: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3592250387, 35778, 17295, [147, 173, 33, 189, 72, 77, 182, 161]);
4782 pub const WiaDevMgr: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2717181734, 36081, 4561, [191, 146, 0, 96, 8, 30, 216, 17]);
4783 pub const WiaDevMgr2: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3066204860, 31880, 16878, [139, 84, 142, 201, 38, 23, 229, 153]);
4784 pub const WiaImgFmt_ASF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2375323369, 53418, 18962, [157, 154, 156, 197, 222, 54, 25, 155]);
4785 pub const WiaImgFmt_AVI: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(855165460, 2172, 18696, [183, 196, 103, 87, 254, 126, 144, 171]);
4786 pub const WiaImgFmt_BMP: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812843, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4787 pub const WiaImgFmt_CIFF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2552342699, 14974, 16917, [148, 224, 210, 122, 70, 12, 3, 178]);
4788 pub const WiaImgFmt_CSV: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(895212068, 23199, 17556, [128, 220, 190, 117, 44, 236, 188, 140]);
4789 pub const WiaImgFmt_DPOF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(916385451, 41192, 17866, [134, 166, 168, 60, 229, 105, 126, 40]);
4790 pub const WiaImgFmt_EMF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812844, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4791 pub const WiaImgFmt_EXEC: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1214095511, 5150, 19109, [187, 59, 165, 97, 141, 149, 208, 43]);
4792 pub const WiaImgFmt_EXIF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812850, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4793 pub const WiaImgFmt_FLASHPIX: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812852, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4794 pub const WiaImgFmt_GIF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812848, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4795 pub const WiaImgFmt_HTML: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3382333026, 39390, 19092, [172, 202, 113, 149, 106, 194, 151, 125]);
4796 pub const WiaImgFmt_ICO: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812853, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4797 pub const WiaImgFmt_JBIG: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1105780114, 12042, 17364, [134, 54, 241, 97, 75, 161, 30, 70]);
4798 pub const WiaImgFmt_JBIG2: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3146677863, 10300, 16949, [158, 89, 11, 155, 249, 76, 166, 135]);
4799 pub const WiaImgFmt_JPEG: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812846, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4800 pub const WiaImgFmt_JPEG2K: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(877585074, 14811, 19934, [129, 115, 196, 183, 95, 143, 30, 73]);
4801 pub const WiaImgFmt_JPEG2KX: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1138837012, 51210, 18512, [186, 243, 75, 21, 45, 200, 218, 39]);
4802 pub const WiaImgFmt_MEMORYBMP: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812842, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4803 pub const WiaImgFmt_MPG: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3973535716, 53996, 20311, [149, 93, 188, 248, 169, 124, 78, 82]);
4804 pub const WiaImgFmt_OXPS: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(746263104, 49485, 16649, [151, 85, 4, 184, 144, 37, 21, 58]);
4805 pub const WiaImgFmt_PDFA: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2575351131, 13411, 17351, [189, 202, 60, 170, 20, 111, 34, 159]);
4806 pub const WiaImgFmt_PHOTOCD: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812851, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4807 pub const WiaImgFmt_PICT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2797372888, 27454, 16622, [169, 92, 37, 212, 130, 228, 26, 220]);
4808 pub const WiaImgFmt_PNG: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812847, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4809 pub const WiaImgFmt_RAW: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1863452441, 61864, 19975, [154, 222, 155, 100, 198, 58, 61, 204]);
4810 pub const WiaImgFmt_RAWBAR: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3663984691, 53870, 17694, [144, 210, 234, 85, 161, 54, 93, 98]);
4811 pub const WiaImgFmt_RAWMIC: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(583331928, 3464, 16540, [172, 28, 238, 193, 43, 14, 166, 128]);
4812 pub const WiaImgFmt_RAWPAT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2002800764, 20580, 16396, [154, 23, 87, 86, 36, 216, 130, 75]);
4813 pub const WiaImgFmt_RAWRGB: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3164900181, 62066, 17265, [176, 241, 74, 21, 13, 5, 123, 180]);
4814 pub const WiaImgFmt_RTF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1463670435, 18484, 17197, [169, 181, 225, 152, 221, 158, 137, 13]);
4815 pub const WiaImgFmt_SCRIPT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4269632595, 11692, 17514, [176, 189, 215, 62, 33, 233, 36, 201]);
4816 pub const WiaImgFmt_TIFF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812849, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4817 pub const WiaImgFmt_TXT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4210904450, 29247, 16927, [147, 24, 48, 80, 26, 196, 75, 89]);
4818 pub const WiaImgFmt_UNDEFINED: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812841, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4819 pub const WiaImgFmt_UNICODE16: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(460732854, 25431, 18385, [154, 7, 18, 69, 45, 192, 115, 233]);
4820 pub const WiaImgFmt_WMF: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3110812845, 1832, 4563, [157, 123, 0, 0, 248, 30, 243, 46]);
4821 pub const WiaImgFmt_XML: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(3105297495, 56008, 18564, [179, 147, 21, 180, 113, 213, 240, 126]);
4822 pub const WiaImgFmt_XMLBAR: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1647669276, 15000, 18508, [178, 168, 253, 255, 216, 126, 107, 22]);
4823 pub const WiaImgFmt_XMLMIC: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(756436065, 47534, 19235, [137, 115, 199, 6, 126, 31, 189, 49]);
4824 pub const WiaImgFmt_XMLPAT: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(4170739541, 61522, 17933, [149, 35, 58, 125, 254, 219, 179, 60]);
4825 pub const WiaImgFmt_XPS: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(1879788047, 8209, 16668, [180, 48, 209, 224, 178, 225, 11, 40]);
4826 pub const WiaItemTypeAnalyze: u32 = 16u32;
4827 pub const WiaItemTypeAudio: u32 = 32u32;
4828 pub const WiaItemTypeBurst: u32 = 2048u32;
4829 pub const WiaItemTypeDeleted: u32 = 128u32;
4830 pub const WiaItemTypeDevice: u32 = 64u32;
4831 pub const WiaItemTypeDisconnected: u32 = 256u32;
4832 pub const WiaItemTypeDocument: u32 = 262144u32;
4833 pub const WiaItemTypeFile: u32 = 2u32;
4834 pub const WiaItemTypeFolder: u32 = 4u32;
4835 pub const WiaItemTypeFree: u32 = 0u32;
4836 pub const WiaItemTypeGenerated: u32 = 16384u32;
4837 pub const WiaItemTypeHPanorama: u32 = 512u32;
4838 pub const WiaItemTypeHasAttachments: u32 = 32768u32;
4839 pub const WiaItemTypeImage: u32 = 1u32;
4840 pub const WiaItemTypeMask: u32 = 2148532223u32;
4841 pub const WiaItemTypeProgrammableDataSource: u32 = 524288u32;
4842 pub const WiaItemTypeRemoved: u32 = 2147483648u32;
4843 pub const WiaItemTypeRoot: u32 = 8u32;
4844 pub const WiaItemTypeStorage: u32 = 4096u32;
4845 pub const WiaItemTypeTransfer: u32 = 8192u32;
4846 pub const WiaItemTypeTwainCapabilityPassThrough: u32 = 131072u32;
4847 pub const WiaItemTypeVPanorama: u32 = 1024u32;
4848 pub const WiaItemTypeVideo: u32 = 65536u32;
4849 pub const WiaLog: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(2716291927, 34842, 16798, [131, 226, 187, 22, 219, 25, 124, 104]);
4850 #[derive(:: std :: clone :: Clone, :: std :: marker :: Copy)]
4851 #[repr(C)]
4852 pub struct WiaTransferParams {
4853     pub lMessage: i32,
4854     pub lPercentComplete: i32,
4855     pub ulTransferredBytes: u64,
4856     pub hrErrorStatus: ::windows::runtime::HRESULT,
4857 }
4858 impl WiaTransferParams {}
4859 impl ::std::default::Default for WiaTransferParams {
4860     fn default() -> Self {
4861         unsafe { ::std::mem::zeroed() }
4862     }
4863 }
4864 impl ::std::fmt::Debug for WiaTransferParams {
4865     fn fmt(&self, fmt: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
4866         fmt.debug_struct("WiaTransferParams").field("lMessage", &self.lMessage).field("lPercentComplete", &self.lPercentComplete).field("ulTransferredBytes", &self.ulTransferredBytes).field("hrErrorStatus", &self.hrErrorStatus).finish()
4867     }
4868 }
4869 impl ::std::cmp::PartialEq for WiaTransferParams {
4870     fn eq(&self, other: &Self) -> bool {
4871         self.lMessage == other.lMessage && self.lPercentComplete == other.lPercentComplete && self.ulTransferredBytes == other.ulTransferredBytes && self.hrErrorStatus == other.hrErrorStatus
4872     }
4873 }
4874 impl ::std::cmp::Eq for WiaTransferParams {}
4875 unsafe impl ::windows::runtime::Abi for WiaTransferParams {
4876     type Abi = Self;
4877     type DefaultType = Self;
4878 }
4879 pub const WiaVideo: ::windows::runtime::GUID = ::windows::runtime::GUID::from_values(956875725, 17528, 17718, [175, 47, 16, 194, 93, 78, 248, 154]);
4880