]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/Graphics/Imaging/impl.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / Graphics / Imaging / impl.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
2pub trait IWICBitmap_Impl: Sized + IWICBitmapSource_Impl {
3 fn Lock(&self, prclock: *const WICRect, flags: u32) -> ::windows::core::Result<IWICBitmapLock>;
4 fn SetPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
5 fn SetResolution(&self, dpix: f64, dpiy: f64) -> ::windows::core::Result<()>;
6}
7impl ::windows::core::RuntimeName for IWICBitmap {}
8impl IWICBitmap_Vtbl {
9 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmap_Impl, const OFFSET: isize>() -> IWICBitmap_Vtbl {
10 unsafe extern "system" fn Lock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prclock: *const WICRect, flags: u32, ppilock: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
11 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
12 let this = (*this).get_impl();
13 match this.Lock(::core::mem::transmute_copy(&prclock), ::core::mem::transmute_copy(&flags)) {
14 ::core::result::Result::Ok(ok__) => {
15 ::core::ptr::write(ppilock, ::core::mem::transmute(ok__));
16 ::windows::core::HRESULT(0)
17 }
18 ::core::result::Result::Err(err) => err.into(),
19 }
20 }
21 unsafe extern "system" fn SetPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
22 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
23 let this = (*this).get_impl();
24 this.SetPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
25 }
26 unsafe extern "system" fn SetResolution<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dpix: f64, dpiy: f64) -> ::windows::core::HRESULT {
27 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
28 let this = (*this).get_impl();
29 this.SetResolution(::core::mem::transmute_copy(&dpix), ::core::mem::transmute_copy(&dpiy)).into()
30 }
31 Self {
32 base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(),
33 Lock: Lock::<Identity, Impl, OFFSET>,
34 SetPalette: SetPalette::<Identity, Impl, OFFSET>,
35 SetResolution: SetResolution::<Identity, Impl, OFFSET>,
36 }
37 }
38 pub fn matches(iid: &windows::core::GUID) -> bool {
39 iid == &<IWICBitmap as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
40 }
41}
42#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
43pub trait IWICBitmapClipper_Impl: Sized + IWICBitmapSource_Impl {
44 fn Initialize(&self, pisource: ::core::option::Option<&IWICBitmapSource>, prc: *const WICRect) -> ::windows::core::Result<()>;
45}
46impl ::windows::core::RuntimeName for IWICBitmapClipper {}
47impl IWICBitmapClipper_Vtbl {
48 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapClipper_Impl, const OFFSET: isize>() -> IWICBitmapClipper_Vtbl {
49 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapClipper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisource: *mut ::core::ffi::c_void, prc: *const WICRect) -> ::windows::core::HRESULT {
50 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
51 let this = (*this).get_impl();
52 this.Initialize(::windows::core::from_raw_borrowed(&pisource), ::core::mem::transmute_copy(&prc)).into()
53 }
54 Self { base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
55 }
56 pub fn matches(iid: &windows::core::GUID) -> bool {
57 iid == &<IWICBitmapClipper as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
58 }
59}
60#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
61#[cfg(feature = "Win32_Foundation")]
62pub trait IWICBitmapCodecInfo_Impl: Sized + IWICComponentInfo_Impl {
63 fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
64 fn GetPixelFormats(&self, cformats: u32, pguidpixelformats: *mut ::windows::core::GUID, pcactual: *mut u32) -> ::windows::core::Result<()>;
65 fn GetColorManagementVersion(&self, cchcolormanagementversion: u32, wzcolormanagementversion: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
66 fn GetDeviceManufacturer(&self, cchdevicemanufacturer: u32, wzdevicemanufacturer: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
67 fn GetDeviceModels(&self, cchdevicemodels: u32, wzdevicemodels: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
68 fn GetMimeTypes(&self, cchmimetypes: u32, wzmimetypes: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
69 fn GetFileExtensions(&self, cchfileextensions: u32, wzfileextensions: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
70 fn DoesSupportAnimation(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
71 fn DoesSupportChromakey(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
72 fn DoesSupportLossless(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
73 fn DoesSupportMultiframe(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
74 fn MatchesMimeType(&self, wzmimetype: &::windows::core::PCWSTR) -> ::windows::core::Result<super::super::Foundation::BOOL>;
75}
76#[cfg(feature = "Win32_Foundation")]
77impl ::windows::core::RuntimeName for IWICBitmapCodecInfo {}
78#[cfg(feature = "Win32_Foundation")]
79impl IWICBitmapCodecInfo_Vtbl {
80 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>() -> IWICBitmapCodecInfo_Vtbl {
81 unsafe extern "system" fn GetContainerFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcontainerformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
82 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
83 let this = (*this).get_impl();
84 match this.GetContainerFormat() {
85 ::core::result::Result::Ok(ok__) => {
86 ::core::ptr::write(pguidcontainerformat, ::core::mem::transmute(ok__));
87 ::windows::core::HRESULT(0)
88 }
89 ::core::result::Result::Err(err) => err.into(),
90 }
91 }
92 unsafe extern "system" fn GetPixelFormats<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cformats: u32, pguidpixelformats: *mut ::windows::core::GUID, pcactual: *mut u32) -> ::windows::core::HRESULT {
93 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
94 let this = (*this).get_impl();
95 this.GetPixelFormats(::core::mem::transmute_copy(&cformats), ::core::mem::transmute_copy(&pguidpixelformats), ::core::mem::transmute_copy(&pcactual)).into()
96 }
97 unsafe extern "system" fn GetColorManagementVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchcolormanagementversion: u32, wzcolormanagementversion: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
98 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
99 let this = (*this).get_impl();
100 this.GetColorManagementVersion(::core::mem::transmute_copy(&cchcolormanagementversion), ::core::mem::transmute(&wzcolormanagementversion), ::core::mem::transmute_copy(&pcchactual)).into()
101 }
102 unsafe extern "system" fn GetDeviceManufacturer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchdevicemanufacturer: u32, wzdevicemanufacturer: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
103 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
104 let this = (*this).get_impl();
105 this.GetDeviceManufacturer(::core::mem::transmute_copy(&cchdevicemanufacturer), ::core::mem::transmute(&wzdevicemanufacturer), ::core::mem::transmute_copy(&pcchactual)).into()
106 }
107 unsafe extern "system" fn GetDeviceModels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchdevicemodels: u32, wzdevicemodels: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
108 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
109 let this = (*this).get_impl();
110 this.GetDeviceModels(::core::mem::transmute_copy(&cchdevicemodels), ::core::mem::transmute(&wzdevicemodels), ::core::mem::transmute_copy(&pcchactual)).into()
111 }
112 unsafe extern "system" fn GetMimeTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchmimetypes: u32, wzmimetypes: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
113 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
114 let this = (*this).get_impl();
115 this.GetMimeTypes(::core::mem::transmute_copy(&cchmimetypes), ::core::mem::transmute(&wzmimetypes), ::core::mem::transmute_copy(&pcchactual)).into()
116 }
117 unsafe extern "system" fn GetFileExtensions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchfileextensions: u32, wzfileextensions: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
118 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
119 let this = (*this).get_impl();
120 this.GetFileExtensions(::core::mem::transmute_copy(&cchfileextensions), ::core::mem::transmute(&wzfileextensions), ::core::mem::transmute_copy(&pcchactual)).into()
121 }
122 unsafe extern "system" fn DoesSupportAnimation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportanimation: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
123 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
124 let this = (*this).get_impl();
125 match this.DoesSupportAnimation() {
126 ::core::result::Result::Ok(ok__) => {
127 ::core::ptr::write(pfsupportanimation, ::core::mem::transmute(ok__));
128 ::windows::core::HRESULT(0)
129 }
130 ::core::result::Result::Err(err) => err.into(),
131 }
132 }
133 unsafe extern "system" fn DoesSupportChromakey<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportchromakey: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
134 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
135 let this = (*this).get_impl();
136 match this.DoesSupportChromakey() {
137 ::core::result::Result::Ok(ok__) => {
138 ::core::ptr::write(pfsupportchromakey, ::core::mem::transmute(ok__));
139 ::windows::core::HRESULT(0)
140 }
141 ::core::result::Result::Err(err) => err.into(),
142 }
143 }
144 unsafe extern "system" fn DoesSupportLossless<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportlossless: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
145 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
146 let this = (*this).get_impl();
147 match this.DoesSupportLossless() {
148 ::core::result::Result::Ok(ok__) => {
149 ::core::ptr::write(pfsupportlossless, ::core::mem::transmute(ok__));
150 ::windows::core::HRESULT(0)
151 }
152 ::core::result::Result::Err(err) => err.into(),
153 }
154 }
155 unsafe extern "system" fn DoesSupportMultiframe<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportmultiframe: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
156 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
157 let this = (*this).get_impl();
158 match this.DoesSupportMultiframe() {
159 ::core::result::Result::Ok(ok__) => {
160 ::core::ptr::write(pfsupportmultiframe, ::core::mem::transmute(ok__));
161 ::windows::core::HRESULT(0)
162 }
163 ::core::result::Result::Err(err) => err.into(),
164 }
165 }
166 unsafe extern "system" fn MatchesMimeType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzmimetype: ::windows::core::PCWSTR, pfmatches: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
167 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
168 let this = (*this).get_impl();
169 match this.MatchesMimeType(::core::mem::transmute(&wzmimetype)) {
170 ::core::result::Result::Ok(ok__) => {
171 ::core::ptr::write(pfmatches, ::core::mem::transmute(ok__));
172 ::windows::core::HRESULT(0)
173 }
174 ::core::result::Result::Err(err) => err.into(),
175 }
176 }
177 Self {
178 base__: IWICComponentInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
179 GetContainerFormat: GetContainerFormat::<Identity, Impl, OFFSET>,
180 GetPixelFormats: GetPixelFormats::<Identity, Impl, OFFSET>,
181 GetColorManagementVersion: GetColorManagementVersion::<Identity, Impl, OFFSET>,
182 GetDeviceManufacturer: GetDeviceManufacturer::<Identity, Impl, OFFSET>,
183 GetDeviceModels: GetDeviceModels::<Identity, Impl, OFFSET>,
184 GetMimeTypes: GetMimeTypes::<Identity, Impl, OFFSET>,
185 GetFileExtensions: GetFileExtensions::<Identity, Impl, OFFSET>,
186 DoesSupportAnimation: DoesSupportAnimation::<Identity, Impl, OFFSET>,
187 DoesSupportChromakey: DoesSupportChromakey::<Identity, Impl, OFFSET>,
188 DoesSupportLossless: DoesSupportLossless::<Identity, Impl, OFFSET>,
189 DoesSupportMultiframe: DoesSupportMultiframe::<Identity, Impl, OFFSET>,
190 MatchesMimeType: MatchesMimeType::<Identity, Impl, OFFSET>,
191 }
192 }
193 pub fn matches(iid: &windows::core::GUID) -> bool {
194 iid == &<IWICBitmapCodecInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID
195 }
196}
197#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
198pub trait IWICBitmapCodecProgressNotification_Impl: Sized {
199 fn RegisterProgressNotification(&self, pfnprogressnotification: PFNProgressNotification, pvdata: *const ::core::ffi::c_void, dwprogressflags: u32) -> ::windows::core::Result<()>;
200}
201impl ::windows::core::RuntimeName for IWICBitmapCodecProgressNotification {}
202impl IWICBitmapCodecProgressNotification_Vtbl {
203 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecProgressNotification_Impl, const OFFSET: isize>() -> IWICBitmapCodecProgressNotification_Vtbl {
204 unsafe extern "system" fn RegisterProgressNotification<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapCodecProgressNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfnprogressnotification: PFNProgressNotification, pvdata: *const ::core::ffi::c_void, dwprogressflags: u32) -> ::windows::core::HRESULT {
205 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
206 let this = (*this).get_impl();
207 this.RegisterProgressNotification(::core::mem::transmute_copy(&pfnprogressnotification), ::core::mem::transmute_copy(&pvdata), ::core::mem::transmute_copy(&dwprogressflags)).into()
208 }
209 Self {
210 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
211 RegisterProgressNotification: RegisterProgressNotification::<Identity, Impl, OFFSET>,
212 }
213 }
214 pub fn matches(iid: &windows::core::GUID) -> bool {
215 iid == &<IWICBitmapCodecProgressNotification as ::windows::core::ComInterface>::IID
216 }
217}
218#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
219#[cfg(feature = "Win32_System_Com")]
220pub trait IWICBitmapDecoder_Impl: Sized {
221 fn QueryCapability(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<u32>;
222 fn Initialize(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, cacheoptions: WICDecodeOptions) -> ::windows::core::Result<()>;
223 fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
224 fn GetDecoderInfo(&self) -> ::windows::core::Result<IWICBitmapDecoderInfo>;
225 fn CopyPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
226 fn GetMetadataQueryReader(&self) -> ::windows::core::Result<IWICMetadataQueryReader>;
227 fn GetPreview(&self) -> ::windows::core::Result<IWICBitmapSource>;
228 fn GetColorContexts(&self, ccount: u32, ppicolorcontexts: *mut ::core::option::Option<IWICColorContext>, pcactualcount: *mut u32) -> ::windows::core::Result<()>;
229 fn GetThumbnail(&self) -> ::windows::core::Result<IWICBitmapSource>;
230 fn GetFrameCount(&self) -> ::windows::core::Result<u32>;
231 fn GetFrame(&self, index: u32) -> ::windows::core::Result<IWICBitmapFrameDecode>;
232}
233#[cfg(feature = "Win32_System_Com")]
234impl ::windows::core::RuntimeName for IWICBitmapDecoder {}
235#[cfg(feature = "Win32_System_Com")]
236impl IWICBitmapDecoder_Vtbl {
237 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>() -> IWICBitmapDecoder_Vtbl {
238 unsafe extern "system" fn QueryCapability<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, pdwcapability: *mut u32) -> ::windows::core::HRESULT {
239 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
240 let this = (*this).get_impl();
241 match this.QueryCapability(::windows::core::from_raw_borrowed(&pistream)) {
242 ::core::result::Result::Ok(ok__) => {
243 ::core::ptr::write(pdwcapability, ::core::mem::transmute(ok__));
244 ::windows::core::HRESULT(0)
245 }
246 ::core::result::Result::Err(err) => err.into(),
247 }
248 }
249 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, cacheoptions: WICDecodeOptions) -> ::windows::core::HRESULT {
250 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
251 let this = (*this).get_impl();
252 this.Initialize(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&cacheoptions)).into()
253 }
254 unsafe extern "system" fn GetContainerFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcontainerformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
255 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
256 let this = (*this).get_impl();
257 match this.GetContainerFormat() {
258 ::core::result::Result::Ok(ok__) => {
259 ::core::ptr::write(pguidcontainerformat, ::core::mem::transmute(ok__));
260 ::windows::core::HRESULT(0)
261 }
262 ::core::result::Result::Err(err) => err.into(),
263 }
264 }
265 unsafe extern "system" fn GetDecoderInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppidecoderinfo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
266 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
267 let this = (*this).get_impl();
268 match this.GetDecoderInfo() {
269 ::core::result::Result::Ok(ok__) => {
270 ::core::ptr::write(ppidecoderinfo, ::core::mem::transmute(ok__));
271 ::windows::core::HRESULT(0)
272 }
273 ::core::result::Result::Err(err) => err.into(),
274 }
275 }
276 unsafe extern "system" fn CopyPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
277 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
278 let this = (*this).get_impl();
279 this.CopyPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
280 }
281 unsafe extern "system" fn GetMetadataQueryReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimetadataqueryreader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
282 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
283 let this = (*this).get_impl();
284 match this.GetMetadataQueryReader() {
285 ::core::result::Result::Ok(ok__) => {
286 ::core::ptr::write(ppimetadataqueryreader, ::core::mem::transmute(ok__));
287 ::windows::core::HRESULT(0)
288 }
289 ::core::result::Result::Err(err) => err.into(),
290 }
291 }
292 unsafe extern "system" fn GetPreview<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapsource: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
293 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
294 let this = (*this).get_impl();
295 match this.GetPreview() {
296 ::core::result::Result::Ok(ok__) => {
297 ::core::ptr::write(ppibitmapsource, ::core::mem::transmute(ok__));
298 ::windows::core::HRESULT(0)
299 }
300 ::core::result::Result::Err(err) => err.into(),
301 }
302 }
303 unsafe extern "system" fn GetColorContexts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccount: u32, ppicolorcontexts: *mut *mut ::core::ffi::c_void, pcactualcount: *mut u32) -> ::windows::core::HRESULT {
304 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
305 let this = (*this).get_impl();
306 this.GetColorContexts(::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&ppicolorcontexts), ::core::mem::transmute_copy(&pcactualcount)).into()
307 }
308 unsafe extern "system" fn GetThumbnail<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppithumbnail: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
309 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
310 let this = (*this).get_impl();
311 match this.GetThumbnail() {
312 ::core::result::Result::Ok(ok__) => {
313 ::core::ptr::write(ppithumbnail, ::core::mem::transmute(ok__));
314 ::windows::core::HRESULT(0)
315 }
316 ::core::result::Result::Err(err) => err.into(),
317 }
318 }
319 unsafe extern "system" fn GetFrameCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32) -> ::windows::core::HRESULT {
320 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
321 let this = (*this).get_impl();
322 match this.GetFrameCount() {
323 ::core::result::Result::Ok(ok__) => {
324 ::core::ptr::write(pcount, ::core::mem::transmute(ok__));
325 ::windows::core::HRESULT(0)
326 }
327 ::core::result::Result::Err(err) => err.into(),
328 }
329 }
330 unsafe extern "system" fn GetFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, ppibitmapframe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
331 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
332 let this = (*this).get_impl();
333 match this.GetFrame(::core::mem::transmute_copy(&index)) {
334 ::core::result::Result::Ok(ok__) => {
335 ::core::ptr::write(ppibitmapframe, ::core::mem::transmute(ok__));
336 ::windows::core::HRESULT(0)
337 }
338 ::core::result::Result::Err(err) => err.into(),
339 }
340 }
341 Self {
342 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
343 QueryCapability: QueryCapability::<Identity, Impl, OFFSET>,
344 Initialize: Initialize::<Identity, Impl, OFFSET>,
345 GetContainerFormat: GetContainerFormat::<Identity, Impl, OFFSET>,
346 GetDecoderInfo: GetDecoderInfo::<Identity, Impl, OFFSET>,
347 CopyPalette: CopyPalette::<Identity, Impl, OFFSET>,
348 GetMetadataQueryReader: GetMetadataQueryReader::<Identity, Impl, OFFSET>,
349 GetPreview: GetPreview::<Identity, Impl, OFFSET>,
350 GetColorContexts: GetColorContexts::<Identity, Impl, OFFSET>,
351 GetThumbnail: GetThumbnail::<Identity, Impl, OFFSET>,
352 GetFrameCount: GetFrameCount::<Identity, Impl, OFFSET>,
353 GetFrame: GetFrame::<Identity, Impl, OFFSET>,
354 }
355 }
356 pub fn matches(iid: &windows::core::GUID) -> bool {
357 iid == &<IWICBitmapDecoder as ::windows::core::ComInterface>::IID
358 }
359}
360#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
361#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
362pub trait IWICBitmapDecoderInfo_Impl: Sized + IWICBitmapCodecInfo_Impl {
363 fn GetPatterns(&self, cbsizepatterns: u32, ppatterns: *mut WICBitmapPattern, pcpatterns: *mut u32, pcbpatternsactual: *mut u32) -> ::windows::core::Result<()>;
364 fn MatchesPattern(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<super::super::Foundation::BOOL>;
365 fn CreateInstance(&self) -> ::windows::core::Result<IWICBitmapDecoder>;
366}
367#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
368impl ::windows::core::RuntimeName for IWICBitmapDecoderInfo {}
369#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
370impl IWICBitmapDecoderInfo_Vtbl {
371 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoderInfo_Impl, const OFFSET: isize>() -> IWICBitmapDecoderInfo_Vtbl {
372 unsafe extern "system" fn GetPatterns<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbsizepatterns: u32, ppatterns: *mut WICBitmapPattern, pcpatterns: *mut u32, pcbpatternsactual: *mut u32) -> ::windows::core::HRESULT {
373 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
374 let this = (*this).get_impl();
375 this.GetPatterns(::core::mem::transmute_copy(&cbsizepatterns), ::core::mem::transmute_copy(&ppatterns), ::core::mem::transmute_copy(&pcpatterns), ::core::mem::transmute_copy(&pcbpatternsactual)).into()
376 }
377 unsafe extern "system" fn MatchesPattern<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, pfmatches: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
378 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
379 let this = (*this).get_impl();
380 match this.MatchesPattern(::windows::core::from_raw_borrowed(&pistream)) {
381 ::core::result::Result::Ok(ok__) => {
382 ::core::ptr::write(pfmatches, ::core::mem::transmute(ok__));
383 ::windows::core::HRESULT(0)
384 }
385 ::core::result::Result::Err(err) => err.into(),
386 }
387 }
388 unsafe extern "system" fn CreateInstance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapDecoderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapdecoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
389 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
390 let this = (*this).get_impl();
391 match this.CreateInstance() {
392 ::core::result::Result::Ok(ok__) => {
393 ::core::ptr::write(ppibitmapdecoder, ::core::mem::transmute(ok__));
394 ::windows::core::HRESULT(0)
395 }
396 ::core::result::Result::Err(err) => err.into(),
397 }
398 }
399 Self {
400 base__: IWICBitmapCodecInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
401 GetPatterns: GetPatterns::<Identity, Impl, OFFSET>,
402 MatchesPattern: MatchesPattern::<Identity, Impl, OFFSET>,
403 CreateInstance: CreateInstance::<Identity, Impl, OFFSET>,
404 }
405 }
406 pub fn matches(iid: &windows::core::GUID) -> bool {
407 iid == &<IWICBitmapDecoderInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapCodecInfo as ::windows::core::ComInterface>::IID
408 }
409}
410#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
411#[cfg(feature = "Win32_System_Com_StructuredStorage")]
412pub trait IWICBitmapEncoder_Impl: Sized {
413 fn Initialize(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, cacheoption: WICBitmapEncoderCacheOption) -> ::windows::core::Result<()>;
414 fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
415 fn GetEncoderInfo(&self) -> ::windows::core::Result<IWICBitmapEncoderInfo>;
416 fn SetColorContexts(&self, ccount: u32, ppicolorcontext: *const ::core::option::Option<IWICColorContext>) -> ::windows::core::Result<()>;
417 fn SetPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
418 fn SetThumbnail(&self, pithumbnail: ::core::option::Option<&IWICBitmapSource>) -> ::windows::core::Result<()>;
419 fn SetPreview(&self, pipreview: ::core::option::Option<&IWICBitmapSource>) -> ::windows::core::Result<()>;
420 fn CreateNewFrame(&self, ppiframeencode: *mut ::core::option::Option<IWICBitmapFrameEncode>, ppiencoderoptions: *mut ::core::option::Option<super::super::System::Com::StructuredStorage::IPropertyBag2>) -> ::windows::core::Result<()>;
421 fn Commit(&self) -> ::windows::core::Result<()>;
422 fn GetMetadataQueryWriter(&self) -> ::windows::core::Result<IWICMetadataQueryWriter>;
423}
424#[cfg(feature = "Win32_System_Com_StructuredStorage")]
425impl ::windows::core::RuntimeName for IWICBitmapEncoder {}
426#[cfg(feature = "Win32_System_Com_StructuredStorage")]
427impl IWICBitmapEncoder_Vtbl {
428 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>() -> IWICBitmapEncoder_Vtbl {
429 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, cacheoption: WICBitmapEncoderCacheOption) -> ::windows::core::HRESULT {
430 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
431 let this = (*this).get_impl();
432 this.Initialize(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&cacheoption)).into()
433 }
434 unsafe extern "system" fn GetContainerFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcontainerformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
435 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
436 let this = (*this).get_impl();
437 match this.GetContainerFormat() {
438 ::core::result::Result::Ok(ok__) => {
439 ::core::ptr::write(pguidcontainerformat, ::core::mem::transmute(ok__));
440 ::windows::core::HRESULT(0)
441 }
442 ::core::result::Result::Err(err) => err.into(),
443 }
444 }
445 unsafe extern "system" fn GetEncoderInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiencoderinfo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
446 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
447 let this = (*this).get_impl();
448 match this.GetEncoderInfo() {
449 ::core::result::Result::Ok(ok__) => {
450 ::core::ptr::write(ppiencoderinfo, ::core::mem::transmute(ok__));
451 ::windows::core::HRESULT(0)
452 }
453 ::core::result::Result::Err(err) => err.into(),
454 }
455 }
456 unsafe extern "system" fn SetColorContexts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccount: u32, ppicolorcontext: *const *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
457 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
458 let this = (*this).get_impl();
459 this.SetColorContexts(::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&ppicolorcontext)).into()
460 }
461 unsafe extern "system" fn SetPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
462 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
463 let this = (*this).get_impl();
464 this.SetPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
465 }
466 unsafe extern "system" fn SetThumbnail<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pithumbnail: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
467 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
468 let this = (*this).get_impl();
469 this.SetThumbnail(::windows::core::from_raw_borrowed(&pithumbnail)).into()
470 }
471 unsafe extern "system" fn SetPreview<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipreview: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
472 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
473 let this = (*this).get_impl();
474 this.SetPreview(::windows::core::from_raw_borrowed(&pipreview)).into()
475 }
476 unsafe extern "system" fn CreateNewFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiframeencode: *mut *mut ::core::ffi::c_void, ppiencoderoptions: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
477 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
478 let this = (*this).get_impl();
479 this.CreateNewFrame(::core::mem::transmute_copy(&ppiframeencode), ::core::mem::transmute_copy(&ppiencoderoptions)).into()
480 }
481 unsafe extern "system" fn Commit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
482 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
483 let this = (*this).get_impl();
484 this.Commit().into()
485 }
486 unsafe extern "system" fn GetMetadataQueryWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimetadataquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
487 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
488 let this = (*this).get_impl();
489 match this.GetMetadataQueryWriter() {
490 ::core::result::Result::Ok(ok__) => {
491 ::core::ptr::write(ppimetadataquerywriter, ::core::mem::transmute(ok__));
492 ::windows::core::HRESULT(0)
493 }
494 ::core::result::Result::Err(err) => err.into(),
495 }
496 }
497 Self {
498 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
499 Initialize: Initialize::<Identity, Impl, OFFSET>,
500 GetContainerFormat: GetContainerFormat::<Identity, Impl, OFFSET>,
501 GetEncoderInfo: GetEncoderInfo::<Identity, Impl, OFFSET>,
502 SetColorContexts: SetColorContexts::<Identity, Impl, OFFSET>,
503 SetPalette: SetPalette::<Identity, Impl, OFFSET>,
504 SetThumbnail: SetThumbnail::<Identity, Impl, OFFSET>,
505 SetPreview: SetPreview::<Identity, Impl, OFFSET>,
506 CreateNewFrame: CreateNewFrame::<Identity, Impl, OFFSET>,
507 Commit: Commit::<Identity, Impl, OFFSET>,
508 GetMetadataQueryWriter: GetMetadataQueryWriter::<Identity, Impl, OFFSET>,
509 }
510 }
511 pub fn matches(iid: &windows::core::GUID) -> bool {
512 iid == &<IWICBitmapEncoder as ::windows::core::ComInterface>::IID
513 }
514}
515#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
516#[cfg(feature = "Win32_Foundation")]
517pub trait IWICBitmapEncoderInfo_Impl: Sized + IWICBitmapCodecInfo_Impl {
518 fn CreateInstance(&self) -> ::windows::core::Result<IWICBitmapEncoder>;
519}
520#[cfg(feature = "Win32_Foundation")]
521impl ::windows::core::RuntimeName for IWICBitmapEncoderInfo {}
522#[cfg(feature = "Win32_Foundation")]
523impl IWICBitmapEncoderInfo_Vtbl {
524 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoderInfo_Impl, const OFFSET: isize>() -> IWICBitmapEncoderInfo_Vtbl {
525 unsafe extern "system" fn CreateInstance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapEncoderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapencoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
526 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
527 let this = (*this).get_impl();
528 match this.CreateInstance() {
529 ::core::result::Result::Ok(ok__) => {
530 ::core::ptr::write(ppibitmapencoder, ::core::mem::transmute(ok__));
531 ::windows::core::HRESULT(0)
532 }
533 ::core::result::Result::Err(err) => err.into(),
534 }
535 }
536 Self { base__: IWICBitmapCodecInfo_Vtbl::new::<Identity, Impl, OFFSET>(), CreateInstance: CreateInstance::<Identity, Impl, OFFSET> }
537 }
538 pub fn matches(iid: &windows::core::GUID) -> bool {
539 iid == &<IWICBitmapEncoderInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapCodecInfo as ::windows::core::ComInterface>::IID
540 }
541}
542#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
543pub trait IWICBitmapFlipRotator_Impl: Sized + IWICBitmapSource_Impl {
544 fn Initialize(&self, pisource: ::core::option::Option<&IWICBitmapSource>, options: WICBitmapTransformOptions) -> ::windows::core::Result<()>;
545}
546impl ::windows::core::RuntimeName for IWICBitmapFlipRotator {}
547impl IWICBitmapFlipRotator_Vtbl {
548 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFlipRotator_Impl, const OFFSET: isize>() -> IWICBitmapFlipRotator_Vtbl {
549 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFlipRotator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisource: *mut ::core::ffi::c_void, options: WICBitmapTransformOptions) -> ::windows::core::HRESULT {
550 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
551 let this = (*this).get_impl();
552 this.Initialize(::windows::core::from_raw_borrowed(&pisource), ::core::mem::transmute_copy(&options)).into()
553 }
554 Self { base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
555 }
556 pub fn matches(iid: &windows::core::GUID) -> bool {
557 iid == &<IWICBitmapFlipRotator as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
558 }
559}
560#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
561pub trait IWICBitmapFrameDecode_Impl: Sized + IWICBitmapSource_Impl {
562 fn GetMetadataQueryReader(&self) -> ::windows::core::Result<IWICMetadataQueryReader>;
563 fn GetColorContexts(&self, ccount: u32, ppicolorcontexts: *mut ::core::option::Option<IWICColorContext>, pcactualcount: *mut u32) -> ::windows::core::Result<()>;
564 fn GetThumbnail(&self) -> ::windows::core::Result<IWICBitmapSource>;
565}
566impl ::windows::core::RuntimeName for IWICBitmapFrameDecode {}
567impl IWICBitmapFrameDecode_Vtbl {
568 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameDecode_Impl, const OFFSET: isize>() -> IWICBitmapFrameDecode_Vtbl {
569 unsafe extern "system" fn GetMetadataQueryReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimetadataqueryreader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
570 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
571 let this = (*this).get_impl();
572 match this.GetMetadataQueryReader() {
573 ::core::result::Result::Ok(ok__) => {
574 ::core::ptr::write(ppimetadataqueryreader, ::core::mem::transmute(ok__));
575 ::windows::core::HRESULT(0)
576 }
577 ::core::result::Result::Err(err) => err.into(),
578 }
579 }
580 unsafe extern "system" fn GetColorContexts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccount: u32, ppicolorcontexts: *mut *mut ::core::ffi::c_void, pcactualcount: *mut u32) -> ::windows::core::HRESULT {
581 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
582 let this = (*this).get_impl();
583 this.GetColorContexts(::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&ppicolorcontexts), ::core::mem::transmute_copy(&pcactualcount)).into()
584 }
585 unsafe extern "system" fn GetThumbnail<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppithumbnail: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
586 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
587 let this = (*this).get_impl();
588 match this.GetThumbnail() {
589 ::core::result::Result::Ok(ok__) => {
590 ::core::ptr::write(ppithumbnail, ::core::mem::transmute(ok__));
591 ::windows::core::HRESULT(0)
592 }
593 ::core::result::Result::Err(err) => err.into(),
594 }
595 }
596 Self {
597 base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(),
598 GetMetadataQueryReader: GetMetadataQueryReader::<Identity, Impl, OFFSET>,
599 GetColorContexts: GetColorContexts::<Identity, Impl, OFFSET>,
600 GetThumbnail: GetThumbnail::<Identity, Impl, OFFSET>,
601 }
602 }
603 pub fn matches(iid: &windows::core::GUID) -> bool {
604 iid == &<IWICBitmapFrameDecode as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
605 }
606}
607#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
608#[cfg(feature = "Win32_System_Com_StructuredStorage")]
609pub trait IWICBitmapFrameEncode_Impl: Sized {
610 fn Initialize(&self, piencoderoptions: ::core::option::Option<&super::super::System::Com::StructuredStorage::IPropertyBag2>) -> ::windows::core::Result<()>;
611 fn SetSize(&self, uiwidth: u32, uiheight: u32) -> ::windows::core::Result<()>;
612 fn SetResolution(&self, dpix: f64, dpiy: f64) -> ::windows::core::Result<()>;
613 fn SetPixelFormat(&self, ppixelformat: *mut ::windows::core::GUID) -> ::windows::core::Result<()>;
614 fn SetColorContexts(&self, ccount: u32, ppicolorcontext: *const ::core::option::Option<IWICColorContext>) -> ::windows::core::Result<()>;
615 fn SetPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
616 fn SetThumbnail(&self, pithumbnail: ::core::option::Option<&IWICBitmapSource>) -> ::windows::core::Result<()>;
617 fn WritePixels(&self, linecount: u32, cbstride: u32, cbbuffersize: u32, pbpixels: *const u8) -> ::windows::core::Result<()>;
618 fn WriteSource(&self, pibitmapsource: ::core::option::Option<&IWICBitmapSource>, prc: *const WICRect) -> ::windows::core::Result<()>;
619 fn Commit(&self) -> ::windows::core::Result<()>;
620 fn GetMetadataQueryWriter(&self) -> ::windows::core::Result<IWICMetadataQueryWriter>;
621}
622#[cfg(feature = "Win32_System_Com_StructuredStorage")]
623impl ::windows::core::RuntimeName for IWICBitmapFrameEncode {}
624#[cfg(feature = "Win32_System_Com_StructuredStorage")]
625impl IWICBitmapFrameEncode_Vtbl {
626 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>() -> IWICBitmapFrameEncode_Vtbl {
627 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piencoderoptions: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
628 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
629 let this = (*this).get_impl();
630 this.Initialize(::windows::core::from_raw_borrowed(&piencoderoptions)).into()
631 }
632 unsafe extern "system" fn SetSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uiwidth: u32, uiheight: u32) -> ::windows::core::HRESULT {
633 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
634 let this = (*this).get_impl();
635 this.SetSize(::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight)).into()
636 }
637 unsafe extern "system" fn SetResolution<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dpix: f64, dpiy: f64) -> ::windows::core::HRESULT {
638 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
639 let this = (*this).get_impl();
640 this.SetResolution(::core::mem::transmute_copy(&dpix), ::core::mem::transmute_copy(&dpiy)).into()
641 }
642 unsafe extern "system" fn SetPixelFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppixelformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
643 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
644 let this = (*this).get_impl();
645 this.SetPixelFormat(::core::mem::transmute_copy(&ppixelformat)).into()
646 }
647 unsafe extern "system" fn SetColorContexts<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccount: u32, ppicolorcontext: *const *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
648 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
649 let this = (*this).get_impl();
650 this.SetColorContexts(::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&ppicolorcontext)).into()
651 }
652 unsafe extern "system" fn SetPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
653 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
654 let this = (*this).get_impl();
655 this.SetPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
656 }
657 unsafe extern "system" fn SetThumbnail<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pithumbnail: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
658 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
659 let this = (*this).get_impl();
660 this.SetThumbnail(::windows::core::from_raw_borrowed(&pithumbnail)).into()
661 }
662 unsafe extern "system" fn WritePixels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, linecount: u32, cbstride: u32, cbbuffersize: u32, pbpixels: *const u8) -> ::windows::core::HRESULT {
663 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
664 let this = (*this).get_impl();
665 this.WritePixels(::core::mem::transmute_copy(&linecount), ::core::mem::transmute_copy(&cbstride), ::core::mem::transmute_copy(&cbbuffersize), ::core::mem::transmute_copy(&pbpixels)).into()
666 }
667 unsafe extern "system" fn WriteSource<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pibitmapsource: *mut ::core::ffi::c_void, prc: *const WICRect) -> ::windows::core::HRESULT {
668 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
669 let this = (*this).get_impl();
670 this.WriteSource(::windows::core::from_raw_borrowed(&pibitmapsource), ::core::mem::transmute_copy(&prc)).into()
671 }
672 unsafe extern "system" fn Commit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
673 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
674 let this = (*this).get_impl();
675 this.Commit().into()
676 }
677 unsafe extern "system" fn GetMetadataQueryWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimetadataquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
678 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
679 let this = (*this).get_impl();
680 match this.GetMetadataQueryWriter() {
681 ::core::result::Result::Ok(ok__) => {
682 ::core::ptr::write(ppimetadataquerywriter, ::core::mem::transmute(ok__));
683 ::windows::core::HRESULT(0)
684 }
685 ::core::result::Result::Err(err) => err.into(),
686 }
687 }
688 Self {
689 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
690 Initialize: Initialize::<Identity, Impl, OFFSET>,
691 SetSize: SetSize::<Identity, Impl, OFFSET>,
692 SetResolution: SetResolution::<Identity, Impl, OFFSET>,
693 SetPixelFormat: SetPixelFormat::<Identity, Impl, OFFSET>,
694 SetColorContexts: SetColorContexts::<Identity, Impl, OFFSET>,
695 SetPalette: SetPalette::<Identity, Impl, OFFSET>,
696 SetThumbnail: SetThumbnail::<Identity, Impl, OFFSET>,
697 WritePixels: WritePixels::<Identity, Impl, OFFSET>,
698 WriteSource: WriteSource::<Identity, Impl, OFFSET>,
699 Commit: Commit::<Identity, Impl, OFFSET>,
700 GetMetadataQueryWriter: GetMetadataQueryWriter::<Identity, Impl, OFFSET>,
701 }
702 }
703 pub fn matches(iid: &windows::core::GUID) -> bool {
704 iid == &<IWICBitmapFrameEncode as ::windows::core::ComInterface>::IID
705 }
706}
707#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
708pub trait IWICBitmapLock_Impl: Sized {
709 fn GetSize(&self, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::Result<()>;
710 fn GetStride(&self) -> ::windows::core::Result<u32>;
711 fn GetDataPointer(&self, pcbbuffersize: *mut u32, ppbdata: *mut *mut u8) -> ::windows::core::Result<()>;
712 fn GetPixelFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
713}
714impl ::windows::core::RuntimeName for IWICBitmapLock {}
715impl IWICBitmapLock_Vtbl {
716 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapLock_Impl, const OFFSET: isize>() -> IWICBitmapLock_Vtbl {
717 unsafe extern "system" fn GetSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapLock_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::HRESULT {
718 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
719 let this = (*this).get_impl();
720 this.GetSize(::core::mem::transmute_copy(&puiwidth), ::core::mem::transmute_copy(&puiheight)).into()
721 }
722 unsafe extern "system" fn GetStride<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapLock_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcbstride: *mut u32) -> ::windows::core::HRESULT {
723 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
724 let this = (*this).get_impl();
725 match this.GetStride() {
726 ::core::result::Result::Ok(ok__) => {
727 ::core::ptr::write(pcbstride, ::core::mem::transmute(ok__));
728 ::windows::core::HRESULT(0)
729 }
730 ::core::result::Result::Err(err) => err.into(),
731 }
732 }
733 unsafe extern "system" fn GetDataPointer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapLock_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcbbuffersize: *mut u32, ppbdata: *mut *mut u8) -> ::windows::core::HRESULT {
734 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
735 let this = (*this).get_impl();
736 this.GetDataPointer(::core::mem::transmute_copy(&pcbbuffersize), ::core::mem::transmute_copy(&ppbdata)).into()
737 }
738 unsafe extern "system" fn GetPixelFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapLock_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppixelformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
739 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
740 let this = (*this).get_impl();
741 match this.GetPixelFormat() {
742 ::core::result::Result::Ok(ok__) => {
743 ::core::ptr::write(ppixelformat, ::core::mem::transmute(ok__));
744 ::windows::core::HRESULT(0)
745 }
746 ::core::result::Result::Err(err) => err.into(),
747 }
748 }
749 Self {
750 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
751 GetSize: GetSize::<Identity, Impl, OFFSET>,
752 GetStride: GetStride::<Identity, Impl, OFFSET>,
753 GetDataPointer: GetDataPointer::<Identity, Impl, OFFSET>,
754 GetPixelFormat: GetPixelFormat::<Identity, Impl, OFFSET>,
755 }
756 }
757 pub fn matches(iid: &windows::core::GUID) -> bool {
758 iid == &<IWICBitmapLock as ::windows::core::ComInterface>::IID
759 }
760}
761#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
762pub trait IWICBitmapScaler_Impl: Sized + IWICBitmapSource_Impl {
763 fn Initialize(&self, pisource: ::core::option::Option<&IWICBitmapSource>, uiwidth: u32, uiheight: u32, mode: WICBitmapInterpolationMode) -> ::windows::core::Result<()>;
764}
765impl ::windows::core::RuntimeName for IWICBitmapScaler {}
766impl IWICBitmapScaler_Vtbl {
767 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapScaler_Impl, const OFFSET: isize>() -> IWICBitmapScaler_Vtbl {
768 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapScaler_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisource: *mut ::core::ffi::c_void, uiwidth: u32, uiheight: u32, mode: WICBitmapInterpolationMode) -> ::windows::core::HRESULT {
769 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
770 let this = (*this).get_impl();
771 this.Initialize(::windows::core::from_raw_borrowed(&pisource), ::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight), ::core::mem::transmute_copy(&mode)).into()
772 }
773 Self { base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
774 }
775 pub fn matches(iid: &windows::core::GUID) -> bool {
776 iid == &<IWICBitmapScaler as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
777 }
778}
779#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
780pub trait IWICBitmapSource_Impl: Sized {
781 fn GetSize(&self, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::Result<()>;
782 fn GetPixelFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
783 fn GetResolution(&self, pdpix: *mut f64, pdpiy: *mut f64) -> ::windows::core::Result<()>;
784 fn CopyPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
785 fn CopyPixels(&self, prc: *const WICRect, cbstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::Result<()>;
786}
787impl ::windows::core::RuntimeName for IWICBitmapSource {}
788impl IWICBitmapSource_Vtbl {
789 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>() -> IWICBitmapSource_Vtbl {
790 unsafe extern "system" fn GetSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::HRESULT {
791 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
792 let this = (*this).get_impl();
793 this.GetSize(::core::mem::transmute_copy(&puiwidth), ::core::mem::transmute_copy(&puiheight)).into()
794 }
795 unsafe extern "system" fn GetPixelFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppixelformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
796 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
797 let this = (*this).get_impl();
798 match this.GetPixelFormat() {
799 ::core::result::Result::Ok(ok__) => {
800 ::core::ptr::write(ppixelformat, ::core::mem::transmute(ok__));
801 ::windows::core::HRESULT(0)
802 }
803 ::core::result::Result::Err(err) => err.into(),
804 }
805 }
806 unsafe extern "system" fn GetResolution<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdpix: *mut f64, pdpiy: *mut f64) -> ::windows::core::HRESULT {
807 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
808 let this = (*this).get_impl();
809 this.GetResolution(::core::mem::transmute_copy(&pdpix), ::core::mem::transmute_copy(&pdpiy)).into()
810 }
811 unsafe extern "system" fn CopyPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
812 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
813 let this = (*this).get_impl();
814 this.CopyPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
815 }
816 unsafe extern "system" fn CopyPixels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *const WICRect, cbstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::HRESULT {
817 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
818 let this = (*this).get_impl();
819 this.CopyPixels(::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&cbstride), ::core::mem::transmute_copy(&cbbuffersize), ::core::mem::transmute_copy(&pbbuffer)).into()
820 }
821 Self {
822 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
823 GetSize: GetSize::<Identity, Impl, OFFSET>,
824 GetPixelFormat: GetPixelFormat::<Identity, Impl, OFFSET>,
825 GetResolution: GetResolution::<Identity, Impl, OFFSET>,
826 CopyPalette: CopyPalette::<Identity, Impl, OFFSET>,
827 CopyPixels: CopyPixels::<Identity, Impl, OFFSET>,
828 }
829 }
830 pub fn matches(iid: &windows::core::GUID) -> bool {
831 iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
832 }
833}
834#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
835#[cfg(feature = "Win32_Foundation")]
836pub trait IWICBitmapSourceTransform_Impl: Sized {
837 fn CopyPixels(&self, prc: *const WICRect, uiwidth: u32, uiheight: u32, pguiddstformat: *const ::windows::core::GUID, dsttransform: WICBitmapTransformOptions, nstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::Result<()>;
838 fn GetClosestSize(&self, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::Result<()>;
839 fn GetClosestPixelFormat(&self, pguiddstformat: *mut ::windows::core::GUID) -> ::windows::core::Result<()>;
840 fn DoesSupportTransform(&self, dsttransform: WICBitmapTransformOptions) -> ::windows::core::Result<super::super::Foundation::BOOL>;
841}
842#[cfg(feature = "Win32_Foundation")]
843impl ::windows::core::RuntimeName for IWICBitmapSourceTransform {}
844#[cfg(feature = "Win32_Foundation")]
845impl IWICBitmapSourceTransform_Vtbl {
846 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSourceTransform_Impl, const OFFSET: isize>() -> IWICBitmapSourceTransform_Vtbl {
847 unsafe extern "system" fn CopyPixels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prc: *const WICRect, uiwidth: u32, uiheight: u32, pguiddstformat: *const ::windows::core::GUID, dsttransform: WICBitmapTransformOptions, nstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::HRESULT {
848 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
849 let this = (*this).get_impl();
850 this.CopyPixels(::core::mem::transmute_copy(&prc), ::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight), ::core::mem::transmute_copy(&pguiddstformat), ::core::mem::transmute_copy(&dsttransform), ::core::mem::transmute_copy(&nstride), ::core::mem::transmute_copy(&cbbuffersize), ::core::mem::transmute_copy(&pbbuffer)).into()
851 }
852 unsafe extern "system" fn GetClosestSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puiwidth: *mut u32, puiheight: *mut u32) -> ::windows::core::HRESULT {
853 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
854 let this = (*this).get_impl();
855 this.GetClosestSize(::core::mem::transmute_copy(&puiwidth), ::core::mem::transmute_copy(&puiheight)).into()
856 }
857 unsafe extern "system" fn GetClosestPixelFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguiddstformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
858 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
859 let this = (*this).get_impl();
860 this.GetClosestPixelFormat(::core::mem::transmute_copy(&pguiddstformat)).into()
861 }
862 unsafe extern "system" fn DoesSupportTransform<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dsttransform: WICBitmapTransformOptions, pfissupported: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
863 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
864 let this = (*this).get_impl();
865 match this.DoesSupportTransform(::core::mem::transmute_copy(&dsttransform)) {
866 ::core::result::Result::Ok(ok__) => {
867 ::core::ptr::write(pfissupported, ::core::mem::transmute(ok__));
868 ::windows::core::HRESULT(0)
869 }
870 ::core::result::Result::Err(err) => err.into(),
871 }
872 }
873 Self {
874 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
875 CopyPixels: CopyPixels::<Identity, Impl, OFFSET>,
876 GetClosestSize: GetClosestSize::<Identity, Impl, OFFSET>,
877 GetClosestPixelFormat: GetClosestPixelFormat::<Identity, Impl, OFFSET>,
878 DoesSupportTransform: DoesSupportTransform::<Identity, Impl, OFFSET>,
879 }
880 }
881 pub fn matches(iid: &windows::core::GUID) -> bool {
882 iid == &<IWICBitmapSourceTransform as ::windows::core::ComInterface>::IID
883 }
884}
885#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
886pub trait IWICColorContext_Impl: Sized {
887 fn InitializeFromFilename(&self, wzfilename: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
888 fn InitializeFromMemory(&self, pbbuffer: *const u8, cbbuffersize: u32) -> ::windows::core::Result<()>;
889 fn InitializeFromExifColorSpace(&self, value: u32) -> ::windows::core::Result<()>;
890 fn GetType(&self) -> ::windows::core::Result<WICColorContextType>;
891 fn GetProfileBytes(&self, cbbuffer: u32, pbbuffer: *mut u8, pcbactual: *mut u32) -> ::windows::core::Result<()>;
892 fn GetExifColorSpace(&self) -> ::windows::core::Result<u32>;
893}
894impl ::windows::core::RuntimeName for IWICColorContext {}
895impl IWICColorContext_Vtbl {
896 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>() -> IWICColorContext_Vtbl {
897 unsafe extern "system" fn InitializeFromFilename<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzfilename: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
898 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
899 let this = (*this).get_impl();
900 this.InitializeFromFilename(::core::mem::transmute(&wzfilename)).into()
901 }
902 unsafe extern "system" fn InitializeFromMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbbuffer: *const u8, cbbuffersize: u32) -> ::windows::core::HRESULT {
903 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
904 let this = (*this).get_impl();
905 this.InitializeFromMemory(::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&cbbuffersize)).into()
906 }
907 unsafe extern "system" fn InitializeFromExifColorSpace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: u32) -> ::windows::core::HRESULT {
908 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
909 let this = (*this).get_impl();
910 this.InitializeFromExifColorSpace(::core::mem::transmute_copy(&value)).into()
911 }
912 unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptype: *mut WICColorContextType) -> ::windows::core::HRESULT {
913 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
914 let this = (*this).get_impl();
915 match this.GetType() {
916 ::core::result::Result::Ok(ok__) => {
917 ::core::ptr::write(ptype, ::core::mem::transmute(ok__));
918 ::windows::core::HRESULT(0)
919 }
920 ::core::result::Result::Err(err) => err.into(),
921 }
922 }
923 unsafe extern "system" fn GetProfileBytes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbbuffer: u32, pbbuffer: *mut u8, pcbactual: *mut u32) -> ::windows::core::HRESULT {
924 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
925 let this = (*this).get_impl();
926 this.GetProfileBytes(::core::mem::transmute_copy(&cbbuffer), ::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&pcbactual)).into()
927 }
928 unsafe extern "system" fn GetExifColorSpace<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorContext_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut u32) -> ::windows::core::HRESULT {
929 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
930 let this = (*this).get_impl();
931 match this.GetExifColorSpace() {
932 ::core::result::Result::Ok(ok__) => {
933 ::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
934 ::windows::core::HRESULT(0)
935 }
936 ::core::result::Result::Err(err) => err.into(),
937 }
938 }
939 Self {
940 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
941 InitializeFromFilename: InitializeFromFilename::<Identity, Impl, OFFSET>,
942 InitializeFromMemory: InitializeFromMemory::<Identity, Impl, OFFSET>,
943 InitializeFromExifColorSpace: InitializeFromExifColorSpace::<Identity, Impl, OFFSET>,
944 GetType: GetType::<Identity, Impl, OFFSET>,
945 GetProfileBytes: GetProfileBytes::<Identity, Impl, OFFSET>,
946 GetExifColorSpace: GetExifColorSpace::<Identity, Impl, OFFSET>,
947 }
948 }
949 pub fn matches(iid: &windows::core::GUID) -> bool {
950 iid == &<IWICColorContext as ::windows::core::ComInterface>::IID
951 }
952}
953#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
954pub trait IWICColorTransform_Impl: Sized + IWICBitmapSource_Impl {
955 fn Initialize(&self, pibitmapsource: ::core::option::Option<&IWICBitmapSource>, picontextsource: ::core::option::Option<&IWICColorContext>, picontextdest: ::core::option::Option<&IWICColorContext>, pixelfmtdest: *const ::windows::core::GUID) -> ::windows::core::Result<()>;
956}
957impl ::windows::core::RuntimeName for IWICColorTransform {}
958impl IWICColorTransform_Vtbl {
959 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorTransform_Impl, const OFFSET: isize>() -> IWICColorTransform_Vtbl {
960 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICColorTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pibitmapsource: *mut ::core::ffi::c_void, picontextsource: *mut ::core::ffi::c_void, picontextdest: *mut ::core::ffi::c_void, pixelfmtdest: *const ::windows::core::GUID) -> ::windows::core::HRESULT {
961 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
962 let this = (*this).get_impl();
963 this.Initialize(::windows::core::from_raw_borrowed(&pibitmapsource), ::windows::core::from_raw_borrowed(&picontextsource), ::windows::core::from_raw_borrowed(&picontextdest), ::core::mem::transmute_copy(&pixelfmtdest)).into()
964 }
965 Self { base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
966 }
967 pub fn matches(iid: &windows::core::GUID) -> bool {
968 iid == &<IWICColorTransform as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
969 }
970}
971#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
972#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_WindowsAndMessaging"))]
973pub trait IWICComponentFactory_Impl: Sized + IWICImagingFactory_Impl {
974 fn CreateMetadataReader(&self, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwoptions: u32, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<IWICMetadataReader>;
975 fn CreateMetadataReaderFromContainer(&self, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwoptions: u32, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<IWICMetadataReader>;
976 fn CreateMetadataWriter(&self, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwmetadataoptions: u32) -> ::windows::core::Result<IWICMetadataWriter>;
977 fn CreateMetadataWriterFromReader(&self, pireader: ::core::option::Option<&IWICMetadataReader>, pguidvendor: *const ::windows::core::GUID) -> ::windows::core::Result<IWICMetadataWriter>;
978 fn CreateQueryReaderFromBlockReader(&self, piblockreader: ::core::option::Option<&IWICMetadataBlockReader>) -> ::windows::core::Result<IWICMetadataQueryReader>;
979 fn CreateQueryWriterFromBlockWriter(&self, piblockwriter: ::core::option::Option<&IWICMetadataBlockWriter>) -> ::windows::core::Result<IWICMetadataQueryWriter>;
980 fn CreateEncoderPropertyBag(&self, ppropoptions: *const super::super::System::Com::StructuredStorage::PROPBAG2, ccount: u32) -> ::windows::core::Result<super::super::System::Com::StructuredStorage::IPropertyBag2>;
981}
982#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_WindowsAndMessaging"))]
983impl ::windows::core::RuntimeName for IWICComponentFactory {}
984#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_UI_WindowsAndMessaging"))]
985impl IWICComponentFactory_Vtbl {
986 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>() -> IWICComponentFactory_Vtbl {
987 unsafe extern "system" fn CreateMetadataReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwoptions: u32, pistream: *mut ::core::ffi::c_void, ppireader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
988 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
989 let this = (*this).get_impl();
990 match this.CreateMetadataReader(::core::mem::transmute_copy(&guidmetadataformat), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&dwoptions), ::windows::core::from_raw_borrowed(&pistream)) {
991 ::core::result::Result::Ok(ok__) => {
992 ::core::ptr::write(ppireader, ::core::mem::transmute(ok__));
993 ::windows::core::HRESULT(0)
994 }
995 ::core::result::Result::Err(err) => err.into(),
996 }
997 }
998 unsafe extern "system" fn CreateMetadataReaderFromContainer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwoptions: u32, pistream: *mut ::core::ffi::c_void, ppireader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
999 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1000 let this = (*this).get_impl();
1001 match this.CreateMetadataReaderFromContainer(::core::mem::transmute_copy(&guidcontainerformat), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&dwoptions), ::windows::core::from_raw_borrowed(&pistream)) {
1002 ::core::result::Result::Ok(ok__) => {
1003 ::core::ptr::write(ppireader, ::core::mem::transmute(ok__));
1004 ::windows::core::HRESULT(0)
1005 }
1006 ::core::result::Result::Err(err) => err.into(),
1007 }
1008 }
1009 unsafe extern "system" fn CreateMetadataWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, dwmetadataoptions: u32, ppiwriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1010 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1011 let this = (*this).get_impl();
1012 match this.CreateMetadataWriter(::core::mem::transmute_copy(&guidmetadataformat), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&dwmetadataoptions)) {
1013 ::core::result::Result::Ok(ok__) => {
1014 ::core::ptr::write(ppiwriter, ::core::mem::transmute(ok__));
1015 ::windows::core::HRESULT(0)
1016 }
1017 ::core::result::Result::Err(err) => err.into(),
1018 }
1019 }
1020 unsafe extern "system" fn CreateMetadataWriterFromReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pireader: *mut ::core::ffi::c_void, pguidvendor: *const ::windows::core::GUID, ppiwriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1021 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1022 let this = (*this).get_impl();
1023 match this.CreateMetadataWriterFromReader(::windows::core::from_raw_borrowed(&pireader), ::core::mem::transmute_copy(&pguidvendor)) {
1024 ::core::result::Result::Ok(ok__) => {
1025 ::core::ptr::write(ppiwriter, ::core::mem::transmute(ok__));
1026 ::windows::core::HRESULT(0)
1027 }
1028 ::core::result::Result::Err(err) => err.into(),
1029 }
1030 }
1031 unsafe extern "system" fn CreateQueryReaderFromBlockReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piblockreader: *mut ::core::ffi::c_void, ppiqueryreader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1032 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1033 let this = (*this).get_impl();
1034 match this.CreateQueryReaderFromBlockReader(::windows::core::from_raw_borrowed(&piblockreader)) {
1035 ::core::result::Result::Ok(ok__) => {
1036 ::core::ptr::write(ppiqueryreader, ::core::mem::transmute(ok__));
1037 ::windows::core::HRESULT(0)
1038 }
1039 ::core::result::Result::Err(err) => err.into(),
1040 }
1041 }
1042 unsafe extern "system" fn CreateQueryWriterFromBlockWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piblockwriter: *mut ::core::ffi::c_void, ppiquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1043 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1044 let this = (*this).get_impl();
1045 match this.CreateQueryWriterFromBlockWriter(::windows::core::from_raw_borrowed(&piblockwriter)) {
1046 ::core::result::Result::Ok(ok__) => {
1047 ::core::ptr::write(ppiquerywriter, ::core::mem::transmute(ok__));
1048 ::windows::core::HRESULT(0)
1049 }
1050 ::core::result::Result::Err(err) => err.into(),
1051 }
1052 }
1053 unsafe extern "system" fn CreateEncoderPropertyBag<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropoptions: *const super::super::System::Com::StructuredStorage::PROPBAG2, ccount: u32, ppipropertybag: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1054 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1055 let this = (*this).get_impl();
1056 match this.CreateEncoderPropertyBag(::core::mem::transmute_copy(&ppropoptions), ::core::mem::transmute_copy(&ccount)) {
1057 ::core::result::Result::Ok(ok__) => {
1058 ::core::ptr::write(ppipropertybag, ::core::mem::transmute(ok__));
1059 ::windows::core::HRESULT(0)
1060 }
1061 ::core::result::Result::Err(err) => err.into(),
1062 }
1063 }
1064 Self {
1065 base__: IWICImagingFactory_Vtbl::new::<Identity, Impl, OFFSET>(),
1066 CreateMetadataReader: CreateMetadataReader::<Identity, Impl, OFFSET>,
1067 CreateMetadataReaderFromContainer: CreateMetadataReaderFromContainer::<Identity, Impl, OFFSET>,
1068 CreateMetadataWriter: CreateMetadataWriter::<Identity, Impl, OFFSET>,
1069 CreateMetadataWriterFromReader: CreateMetadataWriterFromReader::<Identity, Impl, OFFSET>,
1070 CreateQueryReaderFromBlockReader: CreateQueryReaderFromBlockReader::<Identity, Impl, OFFSET>,
1071 CreateQueryWriterFromBlockWriter: CreateQueryWriterFromBlockWriter::<Identity, Impl, OFFSET>,
1072 CreateEncoderPropertyBag: CreateEncoderPropertyBag::<Identity, Impl, OFFSET>,
1073 }
1074 }
1075 pub fn matches(iid: &windows::core::GUID) -> bool {
1076 iid == &<IWICComponentFactory as ::windows::core::ComInterface>::IID || iid == &<IWICImagingFactory as ::windows::core::ComInterface>::IID
1077 }
1078}
1079#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
1080pub trait IWICComponentInfo_Impl: Sized {
1081 fn GetComponentType(&self) -> ::windows::core::Result<WICComponentType>;
1082 fn GetCLSID(&self) -> ::windows::core::Result<::windows::core::GUID>;
1083 fn GetSigningStatus(&self) -> ::windows::core::Result<u32>;
1084 fn GetAuthor(&self, cchauthor: u32, wzauthor: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
1085 fn GetVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID>;
1086 fn GetVersion(&self, cchversion: u32, wzversion: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
1087 fn GetSpecVersion(&self, cchspecversion: u32, wzspecversion: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
1088 fn GetFriendlyName(&self, cchfriendlyname: u32, wzfriendlyname: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
1089}
1090impl ::windows::core::RuntimeName for IWICComponentInfo {}
1091impl IWICComponentInfo_Vtbl {
1092 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>() -> IWICComponentInfo_Vtbl {
1093 unsafe extern "system" fn GetComponentType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptype: *mut WICComponentType) -> ::windows::core::HRESULT {
1094 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1095 let this = (*this).get_impl();
1096 match this.GetComponentType() {
1097 ::core::result::Result::Ok(ok__) => {
1098 ::core::ptr::write(ptype, ::core::mem::transmute(ok__));
1099 ::windows::core::HRESULT(0)
1100 }
1101 ::core::result::Result::Err(err) => err.into(),
1102 }
1103 }
1104 unsafe extern "system" fn GetCLSID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclsid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
1105 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1106 let this = (*this).get_impl();
1107 match this.GetCLSID() {
1108 ::core::result::Result::Ok(ok__) => {
1109 ::core::ptr::write(pclsid, ::core::mem::transmute(ok__));
1110 ::windows::core::HRESULT(0)
1111 }
1112 ::core::result::Result::Err(err) => err.into(),
1113 }
1114 }
1115 unsafe extern "system" fn GetSigningStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstatus: *mut u32) -> ::windows::core::HRESULT {
1116 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1117 let this = (*this).get_impl();
1118 match this.GetSigningStatus() {
1119 ::core::result::Result::Ok(ok__) => {
1120 ::core::ptr::write(pstatus, ::core::mem::transmute(ok__));
1121 ::windows::core::HRESULT(0)
1122 }
1123 ::core::result::Result::Err(err) => err.into(),
1124 }
1125 }
1126 unsafe extern "system" fn GetAuthor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchauthor: u32, wzauthor: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
1127 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1128 let this = (*this).get_impl();
1129 this.GetAuthor(::core::mem::transmute_copy(&cchauthor), ::core::mem::transmute(&wzauthor), ::core::mem::transmute_copy(&pcchactual)).into()
1130 }
1131 unsafe extern "system" fn GetVendorGUID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidvendor: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
1132 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1133 let this = (*this).get_impl();
1134 match this.GetVendorGUID() {
1135 ::core::result::Result::Ok(ok__) => {
1136 ::core::ptr::write(pguidvendor, ::core::mem::transmute(ok__));
1137 ::windows::core::HRESULT(0)
1138 }
1139 ::core::result::Result::Err(err) => err.into(),
1140 }
1141 }
1142 unsafe extern "system" fn GetVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchversion: u32, wzversion: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
1143 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1144 let this = (*this).get_impl();
1145 this.GetVersion(::core::mem::transmute_copy(&cchversion), ::core::mem::transmute(&wzversion), ::core::mem::transmute_copy(&pcchactual)).into()
1146 }
1147 unsafe extern "system" fn GetSpecVersion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchspecversion: u32, wzspecversion: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
1148 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1149 let this = (*this).get_impl();
1150 this.GetSpecVersion(::core::mem::transmute_copy(&cchspecversion), ::core::mem::transmute(&wzspecversion), ::core::mem::transmute_copy(&pcchactual)).into()
1151 }
1152 unsafe extern "system" fn GetFriendlyName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICComponentInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchfriendlyname: u32, wzfriendlyname: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
1153 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1154 let this = (*this).get_impl();
1155 this.GetFriendlyName(::core::mem::transmute_copy(&cchfriendlyname), ::core::mem::transmute(&wzfriendlyname), ::core::mem::transmute_copy(&pcchactual)).into()
1156 }
1157 Self {
1158 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1159 GetComponentType: GetComponentType::<Identity, Impl, OFFSET>,
1160 GetCLSID: GetCLSID::<Identity, Impl, OFFSET>,
1161 GetSigningStatus: GetSigningStatus::<Identity, Impl, OFFSET>,
1162 GetAuthor: GetAuthor::<Identity, Impl, OFFSET>,
1163 GetVendorGUID: GetVendorGUID::<Identity, Impl, OFFSET>,
1164 GetVersion: GetVersion::<Identity, Impl, OFFSET>,
1165 GetSpecVersion: GetSpecVersion::<Identity, Impl, OFFSET>,
1166 GetFriendlyName: GetFriendlyName::<Identity, Impl, OFFSET>,
1167 }
1168 }
1169 pub fn matches(iid: &windows::core::GUID) -> bool {
1170 iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID
1171 }
1172}
1173#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"implement\"`*"]
1174#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1175pub trait IWICDdsDecoder_Impl: Sized {
1176 fn GetParameters(&self, pparameters: *mut WICDdsParameters) -> ::windows::core::Result<()>;
1177 fn GetFrame(&self, arrayindex: u32, miplevel: u32, sliceindex: u32) -> ::windows::core::Result<IWICBitmapFrameDecode>;
1178}
1179#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1180impl ::windows::core::RuntimeName for IWICDdsDecoder {}
1181#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1182impl IWICDdsDecoder_Vtbl {
1183 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsDecoder_Impl, const OFFSET: isize>() -> IWICDdsDecoder_Vtbl {
1184 unsafe extern "system" fn GetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pparameters: *mut WICDdsParameters) -> ::windows::core::HRESULT {
1185 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1186 let this = (*this).get_impl();
1187 this.GetParameters(::core::mem::transmute_copy(&pparameters)).into()
1188 }
1189 unsafe extern "system" fn GetFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, arrayindex: u32, miplevel: u32, sliceindex: u32, ppibitmapframe: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1190 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1191 let this = (*this).get_impl();
1192 match this.GetFrame(::core::mem::transmute_copy(&arrayindex), ::core::mem::transmute_copy(&miplevel), ::core::mem::transmute_copy(&sliceindex)) {
1193 ::core::result::Result::Ok(ok__) => {
1194 ::core::ptr::write(ppibitmapframe, ::core::mem::transmute(ok__));
1195 ::windows::core::HRESULT(0)
1196 }
1197 ::core::result::Result::Err(err) => err.into(),
1198 }
1199 }
1200 Self {
1201 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1202 GetParameters: GetParameters::<Identity, Impl, OFFSET>,
1203 GetFrame: GetFrame::<Identity, Impl, OFFSET>,
1204 }
1205 }
1206 pub fn matches(iid: &windows::core::GUID) -> bool {
1207 iid == &<IWICDdsDecoder as ::windows::core::ComInterface>::IID
1208 }
1209}
1210#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"implement\"`*"]
1211#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1212pub trait IWICDdsEncoder_Impl: Sized {
1213 fn SetParameters(&self, pparameters: *const WICDdsParameters) -> ::windows::core::Result<()>;
1214 fn GetParameters(&self, pparameters: *mut WICDdsParameters) -> ::windows::core::Result<()>;
1215 fn CreateNewFrame(&self, ppiframeencode: *mut ::core::option::Option<IWICBitmapFrameEncode>, parrayindex: *mut u32, pmiplevel: *mut u32, psliceindex: *mut u32) -> ::windows::core::Result<()>;
1216}
1217#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1218impl ::windows::core::RuntimeName for IWICDdsEncoder {}
1219#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1220impl IWICDdsEncoder_Vtbl {
1221 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsEncoder_Impl, const OFFSET: isize>() -> IWICDdsEncoder_Vtbl {
1222 unsafe extern "system" fn SetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pparameters: *const WICDdsParameters) -> ::windows::core::HRESULT {
1223 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1224 let this = (*this).get_impl();
1225 this.SetParameters(::core::mem::transmute_copy(&pparameters)).into()
1226 }
1227 unsafe extern "system" fn GetParameters<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pparameters: *mut WICDdsParameters) -> ::windows::core::HRESULT {
1228 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1229 let this = (*this).get_impl();
1230 this.GetParameters(::core::mem::transmute_copy(&pparameters)).into()
1231 }
1232 unsafe extern "system" fn CreateNewFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiframeencode: *mut *mut ::core::ffi::c_void, parrayindex: *mut u32, pmiplevel: *mut u32, psliceindex: *mut u32) -> ::windows::core::HRESULT {
1233 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1234 let this = (*this).get_impl();
1235 this.CreateNewFrame(::core::mem::transmute_copy(&ppiframeencode), ::core::mem::transmute_copy(&parrayindex), ::core::mem::transmute_copy(&pmiplevel), ::core::mem::transmute_copy(&psliceindex)).into()
1236 }
1237 Self {
1238 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1239 SetParameters: SetParameters::<Identity, Impl, OFFSET>,
1240 GetParameters: GetParameters::<Identity, Impl, OFFSET>,
1241 CreateNewFrame: CreateNewFrame::<Identity, Impl, OFFSET>,
1242 }
1243 }
1244 pub fn matches(iid: &windows::core::GUID) -> bool {
1245 iid == &<IWICDdsEncoder as ::windows::core::ComInterface>::IID
1246 }
1247}
1248#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"implement\"`*"]
1249#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1250pub trait IWICDdsFrameDecode_Impl: Sized {
1251 fn GetSizeInBlocks(&self, pwidthinblocks: *mut u32, pheightinblocks: *mut u32) -> ::windows::core::Result<()>;
1252 fn GetFormatInfo(&self) -> ::windows::core::Result<WICDdsFormatInfo>;
1253 fn CopyBlocks(&self, prcboundsinblocks: *const WICRect, cbstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::Result<()>;
1254}
1255#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1256impl ::windows::core::RuntimeName for IWICDdsFrameDecode {}
1257#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
1258impl IWICDdsFrameDecode_Vtbl {
1259 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsFrameDecode_Impl, const OFFSET: isize>() -> IWICDdsFrameDecode_Vtbl {
1260 unsafe extern "system" fn GetSizeInBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwidthinblocks: *mut u32, pheightinblocks: *mut u32) -> ::windows::core::HRESULT {
1261 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1262 let this = (*this).get_impl();
1263 this.GetSizeInBlocks(::core::mem::transmute_copy(&pwidthinblocks), ::core::mem::transmute_copy(&pheightinblocks)).into()
1264 }
1265 unsafe extern "system" fn GetFormatInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformatinfo: *mut WICDdsFormatInfo) -> ::windows::core::HRESULT {
1266 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1267 let this = (*this).get_impl();
1268 match this.GetFormatInfo() {
1269 ::core::result::Result::Ok(ok__) => {
1270 ::core::ptr::write(pformatinfo, ::core::mem::transmute(ok__));
1271 ::windows::core::HRESULT(0)
1272 }
1273 ::core::result::Result::Err(err) => err.into(),
1274 }
1275 }
1276 unsafe extern "system" fn CopyBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDdsFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcboundsinblocks: *const WICRect, cbstride: u32, cbbuffersize: u32, pbbuffer: *mut u8) -> ::windows::core::HRESULT {
1277 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1278 let this = (*this).get_impl();
1279 this.CopyBlocks(::core::mem::transmute_copy(&prcboundsinblocks), ::core::mem::transmute_copy(&cbstride), ::core::mem::transmute_copy(&cbbuffersize), ::core::mem::transmute_copy(&pbbuffer)).into()
1280 }
1281 Self {
1282 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1283 GetSizeInBlocks: GetSizeInBlocks::<Identity, Impl, OFFSET>,
1284 GetFormatInfo: GetFormatInfo::<Identity, Impl, OFFSET>,
1285 CopyBlocks: CopyBlocks::<Identity, Impl, OFFSET>,
1286 }
1287 }
1288 pub fn matches(iid: &windows::core::GUID) -> bool {
1289 iid == &<IWICDdsFrameDecode as ::windows::core::ComInterface>::IID
1290 }
1291}
1292#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1293#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1294pub trait IWICDevelopRaw_Impl: Sized + IWICBitmapFrameDecode_Impl {
1295 fn QueryRawCapabilitiesInfo(&self, pinfo: *mut WICRawCapabilitiesInfo) -> ::windows::core::Result<()>;
1296 fn LoadParameterSet(&self, parameterset: WICRawParameterSet) -> ::windows::core::Result<()>;
1297 fn GetCurrentParameterSet(&self) -> ::windows::core::Result<super::super::System::Com::StructuredStorage::IPropertyBag2>;
1298 fn SetExposureCompensation(&self, ev: f64) -> ::windows::core::Result<()>;
1299 fn GetExposureCompensation(&self) -> ::windows::core::Result<f64>;
1300 fn SetWhitePointRGB(&self, red: u32, green: u32, blue: u32) -> ::windows::core::Result<()>;
1301 fn GetWhitePointRGB(&self, pred: *mut u32, pgreen: *mut u32, pblue: *mut u32) -> ::windows::core::Result<()>;
1302 fn SetNamedWhitePoint(&self, whitepoint: WICNamedWhitePoint) -> ::windows::core::Result<()>;
1303 fn GetNamedWhitePoint(&self) -> ::windows::core::Result<WICNamedWhitePoint>;
1304 fn SetWhitePointKelvin(&self, whitepointkelvin: u32) -> ::windows::core::Result<()>;
1305 fn GetWhitePointKelvin(&self) -> ::windows::core::Result<u32>;
1306 fn GetKelvinRangeInfo(&self, pminkelvintemp: *mut u32, pmaxkelvintemp: *mut u32, pkelvintempstepvalue: *mut u32) -> ::windows::core::Result<()>;
1307 fn SetContrast(&self, contrast: f64) -> ::windows::core::Result<()>;
1308 fn GetContrast(&self) -> ::windows::core::Result<f64>;
1309 fn SetGamma(&self, gamma: f64) -> ::windows::core::Result<()>;
1310 fn GetGamma(&self) -> ::windows::core::Result<f64>;
1311 fn SetSharpness(&self, sharpness: f64) -> ::windows::core::Result<()>;
1312 fn GetSharpness(&self) -> ::windows::core::Result<f64>;
1313 fn SetSaturation(&self, saturation: f64) -> ::windows::core::Result<()>;
1314 fn GetSaturation(&self) -> ::windows::core::Result<f64>;
1315 fn SetTint(&self, tint: f64) -> ::windows::core::Result<()>;
1316 fn GetTint(&self) -> ::windows::core::Result<f64>;
1317 fn SetNoiseReduction(&self, noisereduction: f64) -> ::windows::core::Result<()>;
1318 fn GetNoiseReduction(&self) -> ::windows::core::Result<f64>;
1319 fn SetDestinationColorContext(&self, pcolorcontext: ::core::option::Option<&IWICColorContext>) -> ::windows::core::Result<()>;
1320 fn SetToneCurve(&self, cbtonecurvesize: u32, ptonecurve: *const WICRawToneCurve) -> ::windows::core::Result<()>;
1321 fn GetToneCurve(&self, cbtonecurvebuffersize: u32, ptonecurve: *mut WICRawToneCurve, pcbactualtonecurvebuffersize: *mut u32) -> ::windows::core::Result<()>;
1322 fn SetRotation(&self, rotation: f64) -> ::windows::core::Result<()>;
1323 fn GetRotation(&self) -> ::windows::core::Result<f64>;
1324 fn SetRenderMode(&self, rendermode: WICRawRenderMode) -> ::windows::core::Result<()>;
1325 fn GetRenderMode(&self) -> ::windows::core::Result<WICRawRenderMode>;
1326 fn SetNotificationCallback(&self, pcallback: ::core::option::Option<&IWICDevelopRawNotificationCallback>) -> ::windows::core::Result<()>;
1327}
1328#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1329impl ::windows::core::RuntimeName for IWICDevelopRaw {}
1330#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1331impl IWICDevelopRaw_Vtbl {
1332 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>() -> IWICDevelopRaw_Vtbl {
1333 unsafe extern "system" fn QueryRawCapabilitiesInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut WICRawCapabilitiesInfo) -> ::windows::core::HRESULT {
1334 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1335 let this = (*this).get_impl();
1336 this.QueryRawCapabilitiesInfo(::core::mem::transmute_copy(&pinfo)).into()
1337 }
1338 unsafe extern "system" fn LoadParameterSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, parameterset: WICRawParameterSet) -> ::windows::core::HRESULT {
1339 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1340 let this = (*this).get_impl();
1341 this.LoadParameterSet(::core::mem::transmute_copy(&parameterset)).into()
1342 }
1343 unsafe extern "system" fn GetCurrentParameterSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppcurrentparameterset: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1344 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1345 let this = (*this).get_impl();
1346 match this.GetCurrentParameterSet() {
1347 ::core::result::Result::Ok(ok__) => {
1348 ::core::ptr::write(ppcurrentparameterset, ::core::mem::transmute(ok__));
1349 ::windows::core::HRESULT(0)
1350 }
1351 ::core::result::Result::Err(err) => err.into(),
1352 }
1353 }
1354 unsafe extern "system" fn SetExposureCompensation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ev: f64) -> ::windows::core::HRESULT {
1355 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1356 let this = (*this).get_impl();
1357 this.SetExposureCompensation(::core::mem::transmute_copy(&ev)).into()
1358 }
1359 unsafe extern "system" fn GetExposureCompensation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pev: *mut f64) -> ::windows::core::HRESULT {
1360 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1361 let this = (*this).get_impl();
1362 match this.GetExposureCompensation() {
1363 ::core::result::Result::Ok(ok__) => {
1364 ::core::ptr::write(pev, ::core::mem::transmute(ok__));
1365 ::windows::core::HRESULT(0)
1366 }
1367 ::core::result::Result::Err(err) => err.into(),
1368 }
1369 }
1370 unsafe extern "system" fn SetWhitePointRGB<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, red: u32, green: u32, blue: u32) -> ::windows::core::HRESULT {
1371 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1372 let this = (*this).get_impl();
1373 this.SetWhitePointRGB(::core::mem::transmute_copy(&red), ::core::mem::transmute_copy(&green), ::core::mem::transmute_copy(&blue)).into()
1374 }
1375 unsafe extern "system" fn GetWhitePointRGB<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pred: *mut u32, pgreen: *mut u32, pblue: *mut u32) -> ::windows::core::HRESULT {
1376 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1377 let this = (*this).get_impl();
1378 this.GetWhitePointRGB(::core::mem::transmute_copy(&pred), ::core::mem::transmute_copy(&pgreen), ::core::mem::transmute_copy(&pblue)).into()
1379 }
1380 unsafe extern "system" fn SetNamedWhitePoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, whitepoint: WICNamedWhitePoint) -> ::windows::core::HRESULT {
1381 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1382 let this = (*this).get_impl();
1383 this.SetNamedWhitePoint(::core::mem::transmute_copy(&whitepoint)).into()
1384 }
1385 unsafe extern "system" fn GetNamedWhitePoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwhitepoint: *mut WICNamedWhitePoint) -> ::windows::core::HRESULT {
1386 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1387 let this = (*this).get_impl();
1388 match this.GetNamedWhitePoint() {
1389 ::core::result::Result::Ok(ok__) => {
1390 ::core::ptr::write(pwhitepoint, ::core::mem::transmute(ok__));
1391 ::windows::core::HRESULT(0)
1392 }
1393 ::core::result::Result::Err(err) => err.into(),
1394 }
1395 }
1396 unsafe extern "system" fn SetWhitePointKelvin<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, whitepointkelvin: u32) -> ::windows::core::HRESULT {
1397 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1398 let this = (*this).get_impl();
1399 this.SetWhitePointKelvin(::core::mem::transmute_copy(&whitepointkelvin)).into()
1400 }
1401 unsafe extern "system" fn GetWhitePointKelvin<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwhitepointkelvin: *mut u32) -> ::windows::core::HRESULT {
1402 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1403 let this = (*this).get_impl();
1404 match this.GetWhitePointKelvin() {
1405 ::core::result::Result::Ok(ok__) => {
1406 ::core::ptr::write(pwhitepointkelvin, ::core::mem::transmute(ok__));
1407 ::windows::core::HRESULT(0)
1408 }
1409 ::core::result::Result::Err(err) => err.into(),
1410 }
1411 }
1412 unsafe extern "system" fn GetKelvinRangeInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pminkelvintemp: *mut u32, pmaxkelvintemp: *mut u32, pkelvintempstepvalue: *mut u32) -> ::windows::core::HRESULT {
1413 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1414 let this = (*this).get_impl();
1415 this.GetKelvinRangeInfo(::core::mem::transmute_copy(&pminkelvintemp), ::core::mem::transmute_copy(&pmaxkelvintemp), ::core::mem::transmute_copy(&pkelvintempstepvalue)).into()
1416 }
1417 unsafe extern "system" fn SetContrast<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, contrast: f64) -> ::windows::core::HRESULT {
1418 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1419 let this = (*this).get_impl();
1420 this.SetContrast(::core::mem::transmute_copy(&contrast)).into()
1421 }
1422 unsafe extern "system" fn GetContrast<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcontrast: *mut f64) -> ::windows::core::HRESULT {
1423 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1424 let this = (*this).get_impl();
1425 match this.GetContrast() {
1426 ::core::result::Result::Ok(ok__) => {
1427 ::core::ptr::write(pcontrast, ::core::mem::transmute(ok__));
1428 ::windows::core::HRESULT(0)
1429 }
1430 ::core::result::Result::Err(err) => err.into(),
1431 }
1432 }
1433 unsafe extern "system" fn SetGamma<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, gamma: f64) -> ::windows::core::HRESULT {
1434 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1435 let this = (*this).get_impl();
1436 this.SetGamma(::core::mem::transmute_copy(&gamma)).into()
1437 }
1438 unsafe extern "system" fn GetGamma<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgamma: *mut f64) -> ::windows::core::HRESULT {
1439 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1440 let this = (*this).get_impl();
1441 match this.GetGamma() {
1442 ::core::result::Result::Ok(ok__) => {
1443 ::core::ptr::write(pgamma, ::core::mem::transmute(ok__));
1444 ::windows::core::HRESULT(0)
1445 }
1446 ::core::result::Result::Err(err) => err.into(),
1447 }
1448 }
1449 unsafe extern "system" fn SetSharpness<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sharpness: f64) -> ::windows::core::HRESULT {
1450 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1451 let this = (*this).get_impl();
1452 this.SetSharpness(::core::mem::transmute_copy(&sharpness)).into()
1453 }
1454 unsafe extern "system" fn GetSharpness<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psharpness: *mut f64) -> ::windows::core::HRESULT {
1455 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1456 let this = (*this).get_impl();
1457 match this.GetSharpness() {
1458 ::core::result::Result::Ok(ok__) => {
1459 ::core::ptr::write(psharpness, ::core::mem::transmute(ok__));
1460 ::windows::core::HRESULT(0)
1461 }
1462 ::core::result::Result::Err(err) => err.into(),
1463 }
1464 }
1465 unsafe extern "system" fn SetSaturation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, saturation: f64) -> ::windows::core::HRESULT {
1466 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1467 let this = (*this).get_impl();
1468 this.SetSaturation(::core::mem::transmute_copy(&saturation)).into()
1469 }
1470 unsafe extern "system" fn GetSaturation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psaturation: *mut f64) -> ::windows::core::HRESULT {
1471 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1472 let this = (*this).get_impl();
1473 match this.GetSaturation() {
1474 ::core::result::Result::Ok(ok__) => {
1475 ::core::ptr::write(psaturation, ::core::mem::transmute(ok__));
1476 ::windows::core::HRESULT(0)
1477 }
1478 ::core::result::Result::Err(err) => err.into(),
1479 }
1480 }
1481 unsafe extern "system" fn SetTint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tint: f64) -> ::windows::core::HRESULT {
1482 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1483 let this = (*this).get_impl();
1484 this.SetTint(::core::mem::transmute_copy(&tint)).into()
1485 }
1486 unsafe extern "system" fn GetTint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptint: *mut f64) -> ::windows::core::HRESULT {
1487 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1488 let this = (*this).get_impl();
1489 match this.GetTint() {
1490 ::core::result::Result::Ok(ok__) => {
1491 ::core::ptr::write(ptint, ::core::mem::transmute(ok__));
1492 ::windows::core::HRESULT(0)
1493 }
1494 ::core::result::Result::Err(err) => err.into(),
1495 }
1496 }
1497 unsafe extern "system" fn SetNoiseReduction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, noisereduction: f64) -> ::windows::core::HRESULT {
1498 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1499 let this = (*this).get_impl();
1500 this.SetNoiseReduction(::core::mem::transmute_copy(&noisereduction)).into()
1501 }
1502 unsafe extern "system" fn GetNoiseReduction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnoisereduction: *mut f64) -> ::windows::core::HRESULT {
1503 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1504 let this = (*this).get_impl();
1505 match this.GetNoiseReduction() {
1506 ::core::result::Result::Ok(ok__) => {
1507 ::core::ptr::write(pnoisereduction, ::core::mem::transmute(ok__));
1508 ::windows::core::HRESULT(0)
1509 }
1510 ::core::result::Result::Err(err) => err.into(),
1511 }
1512 }
1513 unsafe extern "system" fn SetDestinationColorContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorcontext: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1514 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1515 let this = (*this).get_impl();
1516 this.SetDestinationColorContext(::windows::core::from_raw_borrowed(&pcolorcontext)).into()
1517 }
1518 unsafe extern "system" fn SetToneCurve<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbtonecurvesize: u32, ptonecurve: *const WICRawToneCurve) -> ::windows::core::HRESULT {
1519 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1520 let this = (*this).get_impl();
1521 this.SetToneCurve(::core::mem::transmute_copy(&cbtonecurvesize), ::core::mem::transmute_copy(&ptonecurve)).into()
1522 }
1523 unsafe extern "system" fn GetToneCurve<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbtonecurvebuffersize: u32, ptonecurve: *mut WICRawToneCurve, pcbactualtonecurvebuffersize: *mut u32) -> ::windows::core::HRESULT {
1524 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1525 let this = (*this).get_impl();
1526 this.GetToneCurve(::core::mem::transmute_copy(&cbtonecurvebuffersize), ::core::mem::transmute_copy(&ptonecurve), ::core::mem::transmute_copy(&pcbactualtonecurvebuffersize)).into()
1527 }
1528 unsafe extern "system" fn SetRotation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rotation: f64) -> ::windows::core::HRESULT {
1529 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1530 let this = (*this).get_impl();
1531 this.SetRotation(::core::mem::transmute_copy(&rotation)).into()
1532 }
1533 unsafe extern "system" fn GetRotation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, protation: *mut f64) -> ::windows::core::HRESULT {
1534 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1535 let this = (*this).get_impl();
1536 match this.GetRotation() {
1537 ::core::result::Result::Ok(ok__) => {
1538 ::core::ptr::write(protation, ::core::mem::transmute(ok__));
1539 ::windows::core::HRESULT(0)
1540 }
1541 ::core::result::Result::Err(err) => err.into(),
1542 }
1543 }
1544 unsafe extern "system" fn SetRenderMode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rendermode: WICRawRenderMode) -> ::windows::core::HRESULT {
1545 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1546 let this = (*this).get_impl();
1547 this.SetRenderMode(::core::mem::transmute_copy(&rendermode)).into()
1548 }
1549 unsafe extern "system" fn GetRenderMode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prendermode: *mut WICRawRenderMode) -> ::windows::core::HRESULT {
1550 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1551 let this = (*this).get_impl();
1552 match this.GetRenderMode() {
1553 ::core::result::Result::Ok(ok__) => {
1554 ::core::ptr::write(prendermode, ::core::mem::transmute(ok__));
1555 ::windows::core::HRESULT(0)
1556 }
1557 ::core::result::Result::Err(err) => err.into(),
1558 }
1559 }
1560 unsafe extern "system" fn SetNotificationCallback<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRaw_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcallback: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1561 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1562 let this = (*this).get_impl();
1563 this.SetNotificationCallback(::windows::core::from_raw_borrowed(&pcallback)).into()
1564 }
1565 Self {
1566 base__: IWICBitmapFrameDecode_Vtbl::new::<Identity, Impl, OFFSET>(),
1567 QueryRawCapabilitiesInfo: QueryRawCapabilitiesInfo::<Identity, Impl, OFFSET>,
1568 LoadParameterSet: LoadParameterSet::<Identity, Impl, OFFSET>,
1569 GetCurrentParameterSet: GetCurrentParameterSet::<Identity, Impl, OFFSET>,
1570 SetExposureCompensation: SetExposureCompensation::<Identity, Impl, OFFSET>,
1571 GetExposureCompensation: GetExposureCompensation::<Identity, Impl, OFFSET>,
1572 SetWhitePointRGB: SetWhitePointRGB::<Identity, Impl, OFFSET>,
1573 GetWhitePointRGB: GetWhitePointRGB::<Identity, Impl, OFFSET>,
1574 SetNamedWhitePoint: SetNamedWhitePoint::<Identity, Impl, OFFSET>,
1575 GetNamedWhitePoint: GetNamedWhitePoint::<Identity, Impl, OFFSET>,
1576 SetWhitePointKelvin: SetWhitePointKelvin::<Identity, Impl, OFFSET>,
1577 GetWhitePointKelvin: GetWhitePointKelvin::<Identity, Impl, OFFSET>,
1578 GetKelvinRangeInfo: GetKelvinRangeInfo::<Identity, Impl, OFFSET>,
1579 SetContrast: SetContrast::<Identity, Impl, OFFSET>,
1580 GetContrast: GetContrast::<Identity, Impl, OFFSET>,
1581 SetGamma: SetGamma::<Identity, Impl, OFFSET>,
1582 GetGamma: GetGamma::<Identity, Impl, OFFSET>,
1583 SetSharpness: SetSharpness::<Identity, Impl, OFFSET>,
1584 GetSharpness: GetSharpness::<Identity, Impl, OFFSET>,
1585 SetSaturation: SetSaturation::<Identity, Impl, OFFSET>,
1586 GetSaturation: GetSaturation::<Identity, Impl, OFFSET>,
1587 SetTint: SetTint::<Identity, Impl, OFFSET>,
1588 GetTint: GetTint::<Identity, Impl, OFFSET>,
1589 SetNoiseReduction: SetNoiseReduction::<Identity, Impl, OFFSET>,
1590 GetNoiseReduction: GetNoiseReduction::<Identity, Impl, OFFSET>,
1591 SetDestinationColorContext: SetDestinationColorContext::<Identity, Impl, OFFSET>,
1592 SetToneCurve: SetToneCurve::<Identity, Impl, OFFSET>,
1593 GetToneCurve: GetToneCurve::<Identity, Impl, OFFSET>,
1594 SetRotation: SetRotation::<Identity, Impl, OFFSET>,
1595 GetRotation: GetRotation::<Identity, Impl, OFFSET>,
1596 SetRenderMode: SetRenderMode::<Identity, Impl, OFFSET>,
1597 GetRenderMode: GetRenderMode::<Identity, Impl, OFFSET>,
1598 SetNotificationCallback: SetNotificationCallback::<Identity, Impl, OFFSET>,
1599 }
1600 }
1601 pub fn matches(iid: &windows::core::GUID) -> bool {
1602 iid == &<IWICDevelopRaw as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapFrameDecode as ::windows::core::ComInterface>::IID
1603 }
1604}
1605#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
1606pub trait IWICDevelopRawNotificationCallback_Impl: Sized {
1607 fn Notify(&self, notificationmask: u32) -> ::windows::core::Result<()>;
1608}
1609impl ::windows::core::RuntimeName for IWICDevelopRawNotificationCallback {}
1610impl IWICDevelopRawNotificationCallback_Vtbl {
1611 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRawNotificationCallback_Impl, const OFFSET: isize>() -> IWICDevelopRawNotificationCallback_Vtbl {
1612 unsafe extern "system" fn Notify<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICDevelopRawNotificationCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, notificationmask: u32) -> ::windows::core::HRESULT {
1613 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1614 let this = (*this).get_impl();
1615 this.Notify(::core::mem::transmute_copy(&notificationmask)).into()
1616 }
1617 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Notify: Notify::<Identity, Impl, OFFSET> }
1618 }
1619 pub fn matches(iid: &windows::core::GUID) -> bool {
1620 iid == &<IWICDevelopRawNotificationCallback as ::windows::core::ComInterface>::IID
1621 }
1622}
1623#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1624#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1625pub trait IWICEnumMetadataItem_Impl: Sized {
1626 fn Next(&self, celt: u32, rgeltschema: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltid: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
1627 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
1628 fn Reset(&self) -> ::windows::core::Result<()>;
1629 fn Clone(&self) -> ::windows::core::Result<IWICEnumMetadataItem>;
1630}
1631#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1632impl ::windows::core::RuntimeName for IWICEnumMetadataItem {}
1633#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
1634impl IWICEnumMetadataItem_Vtbl {
1635 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICEnumMetadataItem_Impl, const OFFSET: isize>() -> IWICEnumMetadataItem_Vtbl {
1636 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICEnumMetadataItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgeltschema: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltid: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, rgeltvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
1637 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1638 let this = (*this).get_impl();
1639 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgeltschema), ::core::mem::transmute_copy(&rgeltid), ::core::mem::transmute_copy(&rgeltvalue), ::core::mem::transmute_copy(&pceltfetched)).into()
1640 }
1641 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICEnumMetadataItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
1642 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1643 let this = (*this).get_impl();
1644 this.Skip(::core::mem::transmute_copy(&celt)).into()
1645 }
1646 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICEnumMetadataItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1647 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1648 let this = (*this).get_impl();
1649 this.Reset().into()
1650 }
1651 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICEnumMetadataItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienummetadataitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1652 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1653 let this = (*this).get_impl();
1654 match this.Clone() {
1655 ::core::result::Result::Ok(ok__) => {
1656 ::core::ptr::write(ppienummetadataitem, ::core::mem::transmute(ok__));
1657 ::windows::core::HRESULT(0)
1658 }
1659 ::core::result::Result::Err(err) => err.into(),
1660 }
1661 }
1662 Self {
1663 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1664 Next: Next::<Identity, Impl, OFFSET>,
1665 Skip: Skip::<Identity, Impl, OFFSET>,
1666 Reset: Reset::<Identity, Impl, OFFSET>,
1667 Clone: Clone::<Identity, Impl, OFFSET>,
1668 }
1669 }
1670 pub fn matches(iid: &windows::core::GUID) -> bool {
1671 iid == &<IWICEnumMetadataItem as ::windows::core::ComInterface>::IID
1672 }
1673}
1674#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
1675pub trait IWICFastMetadataEncoder_Impl: Sized {
1676 fn Commit(&self) -> ::windows::core::Result<()>;
1677 fn GetMetadataQueryWriter(&self) -> ::windows::core::Result<IWICMetadataQueryWriter>;
1678}
1679impl ::windows::core::RuntimeName for IWICFastMetadataEncoder {}
1680impl IWICFastMetadataEncoder_Vtbl {
1681 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFastMetadataEncoder_Impl, const OFFSET: isize>() -> IWICFastMetadataEncoder_Vtbl {
1682 unsafe extern "system" fn Commit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFastMetadataEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1683 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1684 let this = (*this).get_impl();
1685 this.Commit().into()
1686 }
1687 unsafe extern "system" fn GetMetadataQueryWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFastMetadataEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppimetadataquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1688 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1689 let this = (*this).get_impl();
1690 match this.GetMetadataQueryWriter() {
1691 ::core::result::Result::Ok(ok__) => {
1692 ::core::ptr::write(ppimetadataquerywriter, ::core::mem::transmute(ok__));
1693 ::windows::core::HRESULT(0)
1694 }
1695 ::core::result::Result::Err(err) => err.into(),
1696 }
1697 }
1698 Self {
1699 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1700 Commit: Commit::<Identity, Impl, OFFSET>,
1701 GetMetadataQueryWriter: GetMetadataQueryWriter::<Identity, Impl, OFFSET>,
1702 }
1703 }
1704 pub fn matches(iid: &windows::core::GUID) -> bool {
1705 iid == &<IWICFastMetadataEncoder as ::windows::core::ComInterface>::IID
1706 }
1707}
1708#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
1709#[cfg(feature = "Win32_Foundation")]
1710pub trait IWICFormatConverter_Impl: Sized + IWICBitmapSource_Impl {
1711 fn Initialize(&self, pisource: ::core::option::Option<&IWICBitmapSource>, dstformat: *const ::windows::core::GUID, dither: WICBitmapDitherType, pipalette: ::core::option::Option<&IWICPalette>, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::Result<()>;
1712 fn CanConvert(&self, srcpixelformat: *const ::windows::core::GUID, dstpixelformat: *const ::windows::core::GUID) -> ::windows::core::Result<super::super::Foundation::BOOL>;
1713}
1714#[cfg(feature = "Win32_Foundation")]
1715impl ::windows::core::RuntimeName for IWICFormatConverter {}
1716#[cfg(feature = "Win32_Foundation")]
1717impl IWICFormatConverter_Vtbl {
1718 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverter_Impl, const OFFSET: isize>() -> IWICFormatConverter_Vtbl {
1719 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisource: *mut ::core::ffi::c_void, dstformat: *const ::windows::core::GUID, dither: WICBitmapDitherType, pipalette: *mut ::core::ffi::c_void, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::HRESULT {
1720 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1721 let this = (*this).get_impl();
1722 this.Initialize(::windows::core::from_raw_borrowed(&pisource), ::core::mem::transmute_copy(&dstformat), ::core::mem::transmute_copy(&dither), ::windows::core::from_raw_borrowed(&pipalette), ::core::mem::transmute_copy(&alphathresholdpercent), ::core::mem::transmute_copy(&palettetranslate)).into()
1723 }
1724 unsafe extern "system" fn CanConvert<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, srcpixelformat: *const ::windows::core::GUID, dstpixelformat: *const ::windows::core::GUID, pfcanconvert: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
1725 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1726 let this = (*this).get_impl();
1727 match this.CanConvert(::core::mem::transmute_copy(&srcpixelformat), ::core::mem::transmute_copy(&dstpixelformat)) {
1728 ::core::result::Result::Ok(ok__) => {
1729 ::core::ptr::write(pfcanconvert, ::core::mem::transmute(ok__));
1730 ::windows::core::HRESULT(0)
1731 }
1732 ::core::result::Result::Err(err) => err.into(),
1733 }
1734 }
1735 Self {
1736 base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(),
1737 Initialize: Initialize::<Identity, Impl, OFFSET>,
1738 CanConvert: CanConvert::<Identity, Impl, OFFSET>,
1739 }
1740 }
1741 pub fn matches(iid: &windows::core::GUID) -> bool {
1742 iid == &<IWICFormatConverter as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
1743 }
1744}
1745#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
1746pub trait IWICFormatConverterInfo_Impl: Sized + IWICComponentInfo_Impl {
1747 fn GetPixelFormats(&self, cformats: u32, ppixelformatguids: *mut ::windows::core::GUID, pcactual: *mut u32) -> ::windows::core::Result<()>;
1748 fn CreateInstance(&self) -> ::windows::core::Result<IWICFormatConverter>;
1749}
1750impl ::windows::core::RuntimeName for IWICFormatConverterInfo {}
1751impl IWICFormatConverterInfo_Vtbl {
1752 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverterInfo_Impl, const OFFSET: isize>() -> IWICFormatConverterInfo_Vtbl {
1753 unsafe extern "system" fn GetPixelFormats<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cformats: u32, ppixelformatguids: *mut ::windows::core::GUID, pcactual: *mut u32) -> ::windows::core::HRESULT {
1754 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1755 let this = (*this).get_impl();
1756 this.GetPixelFormats(::core::mem::transmute_copy(&cformats), ::core::mem::transmute_copy(&ppixelformatguids), ::core::mem::transmute_copy(&pcactual)).into()
1757 }
1758 unsafe extern "system" fn CreateInstance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICFormatConverterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiconverter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1759 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1760 let this = (*this).get_impl();
1761 match this.CreateInstance() {
1762 ::core::result::Result::Ok(ok__) => {
1763 ::core::ptr::write(ppiconverter, ::core::mem::transmute(ok__));
1764 ::windows::core::HRESULT(0)
1765 }
1766 ::core::result::Result::Err(err) => err.into(),
1767 }
1768 }
1769 Self {
1770 base__: IWICComponentInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
1771 GetPixelFormats: GetPixelFormats::<Identity, Impl, OFFSET>,
1772 CreateInstance: CreateInstance::<Identity, Impl, OFFSET>,
1773 }
1774 }
1775 pub fn matches(iid: &windows::core::GUID) -> bool {
1776 iid == &<IWICFormatConverterInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID
1777 }
1778}
1779#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Gdi\"`, `\"Win32_System_Com\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
1780#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_UI_WindowsAndMessaging"))]
1781pub trait IWICImagingFactory_Impl: Sized {
1782 fn CreateDecoderFromFilename(&self, wzfilename: &::windows::core::PCWSTR, pguidvendor: *const ::windows::core::GUID, dwdesiredaccess: u32, metadataoptions: WICDecodeOptions) -> ::windows::core::Result<IWICBitmapDecoder>;
1783 fn CreateDecoderFromStream(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, pguidvendor: *const ::windows::core::GUID, metadataoptions: WICDecodeOptions) -> ::windows::core::Result<IWICBitmapDecoder>;
1784 fn CreateDecoderFromFileHandle(&self, hfile: usize, pguidvendor: *const ::windows::core::GUID, metadataoptions: WICDecodeOptions) -> ::windows::core::Result<IWICBitmapDecoder>;
1785 fn CreateComponentInfo(&self, clsidcomponent: *const ::windows::core::GUID) -> ::windows::core::Result<IWICComponentInfo>;
1786 fn CreateDecoder(&self, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID) -> ::windows::core::Result<IWICBitmapDecoder>;
1787 fn CreateEncoder(&self, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID) -> ::windows::core::Result<IWICBitmapEncoder>;
1788 fn CreatePalette(&self) -> ::windows::core::Result<IWICPalette>;
1789 fn CreateFormatConverter(&self) -> ::windows::core::Result<IWICFormatConverter>;
1790 fn CreateBitmapScaler(&self) -> ::windows::core::Result<IWICBitmapScaler>;
1791 fn CreateBitmapClipper(&self) -> ::windows::core::Result<IWICBitmapClipper>;
1792 fn CreateBitmapFlipRotator(&self) -> ::windows::core::Result<IWICBitmapFlipRotator>;
1793 fn CreateStream(&self) -> ::windows::core::Result<IWICStream>;
1794 fn CreateColorContext(&self) -> ::windows::core::Result<IWICColorContext>;
1795 fn CreateColorTransformer(&self) -> ::windows::core::Result<IWICColorTransform>;
1796 fn CreateBitmap(&self, uiwidth: u32, uiheight: u32, pixelformat: *const ::windows::core::GUID, option: WICBitmapCreateCacheOption) -> ::windows::core::Result<IWICBitmap>;
1797 fn CreateBitmapFromSource(&self, pibitmapsource: ::core::option::Option<&IWICBitmapSource>, option: WICBitmapCreateCacheOption) -> ::windows::core::Result<IWICBitmap>;
1798 fn CreateBitmapFromSourceRect(&self, pibitmapsource: ::core::option::Option<&IWICBitmapSource>, x: u32, y: u32, width: u32, height: u32) -> ::windows::core::Result<IWICBitmap>;
1799 fn CreateBitmapFromMemory(&self, uiwidth: u32, uiheight: u32, pixelformat: *const ::windows::core::GUID, cbstride: u32, cbbuffersize: u32, pbbuffer: *const u8) -> ::windows::core::Result<IWICBitmap>;
1800 fn CreateBitmapFromHBITMAP(&self, hbitmap: super::Gdi::HBITMAP, hpalette: super::Gdi::HPALETTE, options: WICBitmapAlphaChannelOption) -> ::windows::core::Result<IWICBitmap>;
1801 fn CreateBitmapFromHICON(&self, hicon: super::super::UI::WindowsAndMessaging::HICON) -> ::windows::core::Result<IWICBitmap>;
1802 fn CreateComponentEnumerator(&self, componenttypes: u32, options: u32) -> ::windows::core::Result<super::super::System::Com::IEnumUnknown>;
1803 fn CreateFastMetadataEncoderFromDecoder(&self, pidecoder: ::core::option::Option<&IWICBitmapDecoder>) -> ::windows::core::Result<IWICFastMetadataEncoder>;
1804 fn CreateFastMetadataEncoderFromFrameDecode(&self, piframedecoder: ::core::option::Option<&IWICBitmapFrameDecode>) -> ::windows::core::Result<IWICFastMetadataEncoder>;
1805 fn CreateQueryWriter(&self, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID) -> ::windows::core::Result<IWICMetadataQueryWriter>;
1806 fn CreateQueryWriterFromReader(&self, piqueryreader: ::core::option::Option<&IWICMetadataQueryReader>, pguidvendor: *const ::windows::core::GUID) -> ::windows::core::Result<IWICMetadataQueryWriter>;
1807}
1808#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_UI_WindowsAndMessaging"))]
1809impl ::windows::core::RuntimeName for IWICImagingFactory {}
1810#[cfg(all(feature = "Win32_Graphics_Gdi", feature = "Win32_System_Com", feature = "Win32_UI_WindowsAndMessaging"))]
1811impl IWICImagingFactory_Vtbl {
1812 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>() -> IWICImagingFactory_Vtbl {
1813 unsafe extern "system" fn CreateDecoderFromFilename<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzfilename: ::windows::core::PCWSTR, pguidvendor: *const ::windows::core::GUID, dwdesiredaccess: u32, metadataoptions: WICDecodeOptions, ppidecoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1814 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1815 let this = (*this).get_impl();
1816 match this.CreateDecoderFromFilename(::core::mem::transmute(&wzfilename), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&dwdesiredaccess), ::core::mem::transmute_copy(&metadataoptions)) {
1817 ::core::result::Result::Ok(ok__) => {
1818 ::core::ptr::write(ppidecoder, ::core::mem::transmute(ok__));
1819 ::windows::core::HRESULT(0)
1820 }
1821 ::core::result::Result::Err(err) => err.into(),
1822 }
1823 }
1824 unsafe extern "system" fn CreateDecoderFromStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, pguidvendor: *const ::windows::core::GUID, metadataoptions: WICDecodeOptions, ppidecoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1825 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1826 let this = (*this).get_impl();
1827 match this.CreateDecoderFromStream(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&metadataoptions)) {
1828 ::core::result::Result::Ok(ok__) => {
1829 ::core::ptr::write(ppidecoder, ::core::mem::transmute(ok__));
1830 ::windows::core::HRESULT(0)
1831 }
1832 ::core::result::Result::Err(err) => err.into(),
1833 }
1834 }
1835 unsafe extern "system" fn CreateDecoderFromFileHandle<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hfile: usize, pguidvendor: *const ::windows::core::GUID, metadataoptions: WICDecodeOptions, ppidecoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1836 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1837 let this = (*this).get_impl();
1838 match this.CreateDecoderFromFileHandle(::core::mem::transmute_copy(&hfile), ::core::mem::transmute_copy(&pguidvendor), ::core::mem::transmute_copy(&metadataoptions)) {
1839 ::core::result::Result::Ok(ok__) => {
1840 ::core::ptr::write(ppidecoder, ::core::mem::transmute(ok__));
1841 ::windows::core::HRESULT(0)
1842 }
1843 ::core::result::Result::Err(err) => err.into(),
1844 }
1845 }
1846 unsafe extern "system" fn CreateComponentInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidcomponent: *const ::windows::core::GUID, ppiinfo: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1847 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1848 let this = (*this).get_impl();
1849 match this.CreateComponentInfo(::core::mem::transmute_copy(&clsidcomponent)) {
1850 ::core::result::Result::Ok(ok__) => {
1851 ::core::ptr::write(ppiinfo, ::core::mem::transmute(ok__));
1852 ::windows::core::HRESULT(0)
1853 }
1854 ::core::result::Result::Err(err) => err.into(),
1855 }
1856 }
1857 unsafe extern "system" fn CreateDecoder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, ppidecoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1858 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1859 let this = (*this).get_impl();
1860 match this.CreateDecoder(::core::mem::transmute_copy(&guidcontainerformat), ::core::mem::transmute_copy(&pguidvendor)) {
1861 ::core::result::Result::Ok(ok__) => {
1862 ::core::ptr::write(ppidecoder, ::core::mem::transmute(ok__));
1863 ::windows::core::HRESULT(0)
1864 }
1865 ::core::result::Result::Err(err) => err.into(),
1866 }
1867 }
1868 unsafe extern "system" fn CreateEncoder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, ppiencoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1869 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1870 let this = (*this).get_impl();
1871 match this.CreateEncoder(::core::mem::transmute_copy(&guidcontainerformat), ::core::mem::transmute_copy(&pguidvendor)) {
1872 ::core::result::Result::Ok(ok__) => {
1873 ::core::ptr::write(ppiencoder, ::core::mem::transmute(ok__));
1874 ::windows::core::HRESULT(0)
1875 }
1876 ::core::result::Result::Err(err) => err.into(),
1877 }
1878 }
1879 unsafe extern "system" fn CreatePalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppipalette: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1880 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1881 let this = (*this).get_impl();
1882 match this.CreatePalette() {
1883 ::core::result::Result::Ok(ok__) => {
1884 ::core::ptr::write(ppipalette, ::core::mem::transmute(ok__));
1885 ::windows::core::HRESULT(0)
1886 }
1887 ::core::result::Result::Err(err) => err.into(),
1888 }
1889 }
1890 unsafe extern "system" fn CreateFormatConverter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiformatconverter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1891 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1892 let this = (*this).get_impl();
1893 match this.CreateFormatConverter() {
1894 ::core::result::Result::Ok(ok__) => {
1895 ::core::ptr::write(ppiformatconverter, ::core::mem::transmute(ok__));
1896 ::windows::core::HRESULT(0)
1897 }
1898 ::core::result::Result::Err(err) => err.into(),
1899 }
1900 }
1901 unsafe extern "system" fn CreateBitmapScaler<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapscaler: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1902 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1903 let this = (*this).get_impl();
1904 match this.CreateBitmapScaler() {
1905 ::core::result::Result::Ok(ok__) => {
1906 ::core::ptr::write(ppibitmapscaler, ::core::mem::transmute(ok__));
1907 ::windows::core::HRESULT(0)
1908 }
1909 ::core::result::Result::Err(err) => err.into(),
1910 }
1911 }
1912 unsafe extern "system" fn CreateBitmapClipper<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapclipper: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1913 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1914 let this = (*this).get_impl();
1915 match this.CreateBitmapClipper() {
1916 ::core::result::Result::Ok(ok__) => {
1917 ::core::ptr::write(ppibitmapclipper, ::core::mem::transmute(ok__));
1918 ::windows::core::HRESULT(0)
1919 }
1920 ::core::result::Result::Err(err) => err.into(),
1921 }
1922 }
1923 unsafe extern "system" fn CreateBitmapFlipRotator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppibitmapfliprotator: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1924 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1925 let this = (*this).get_impl();
1926 match this.CreateBitmapFlipRotator() {
1927 ::core::result::Result::Ok(ok__) => {
1928 ::core::ptr::write(ppibitmapfliprotator, ::core::mem::transmute(ok__));
1929 ::windows::core::HRESULT(0)
1930 }
1931 ::core::result::Result::Err(err) => err.into(),
1932 }
1933 }
1934 unsafe extern "system" fn CreateStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiwicstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1935 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1936 let this = (*this).get_impl();
1937 match this.CreateStream() {
1938 ::core::result::Result::Ok(ok__) => {
1939 ::core::ptr::write(ppiwicstream, ::core::mem::transmute(ok__));
1940 ::windows::core::HRESULT(0)
1941 }
1942 ::core::result::Result::Err(err) => err.into(),
1943 }
1944 }
1945 unsafe extern "system" fn CreateColorContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiwiccolorcontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1946 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1947 let this = (*this).get_impl();
1948 match this.CreateColorContext() {
1949 ::core::result::Result::Ok(ok__) => {
1950 ::core::ptr::write(ppiwiccolorcontext, ::core::mem::transmute(ok__));
1951 ::windows::core::HRESULT(0)
1952 }
1953 ::core::result::Result::Err(err) => err.into(),
1954 }
1955 }
1956 unsafe extern "system" fn CreateColorTransformer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiwiccolortransform: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1957 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1958 let this = (*this).get_impl();
1959 match this.CreateColorTransformer() {
1960 ::core::result::Result::Ok(ok__) => {
1961 ::core::ptr::write(ppiwiccolortransform, ::core::mem::transmute(ok__));
1962 ::windows::core::HRESULT(0)
1963 }
1964 ::core::result::Result::Err(err) => err.into(),
1965 }
1966 }
1967 unsafe extern "system" fn CreateBitmap<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uiwidth: u32, uiheight: u32, pixelformat: *const ::windows::core::GUID, option: WICBitmapCreateCacheOption, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1968 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1969 let this = (*this).get_impl();
1970 match this.CreateBitmap(::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight), ::core::mem::transmute_copy(&pixelformat), ::core::mem::transmute_copy(&option)) {
1971 ::core::result::Result::Ok(ok__) => {
1972 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
1973 ::windows::core::HRESULT(0)
1974 }
1975 ::core::result::Result::Err(err) => err.into(),
1976 }
1977 }
1978 unsafe extern "system" fn CreateBitmapFromSource<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pibitmapsource: *mut ::core::ffi::c_void, option: WICBitmapCreateCacheOption, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1979 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1980 let this = (*this).get_impl();
1981 match this.CreateBitmapFromSource(::windows::core::from_raw_borrowed(&pibitmapsource), ::core::mem::transmute_copy(&option)) {
1982 ::core::result::Result::Ok(ok__) => {
1983 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
1984 ::windows::core::HRESULT(0)
1985 }
1986 ::core::result::Result::Err(err) => err.into(),
1987 }
1988 }
1989 unsafe extern "system" fn CreateBitmapFromSourceRect<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pibitmapsource: *mut ::core::ffi::c_void, x: u32, y: u32, width: u32, height: u32, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1990 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1991 let this = (*this).get_impl();
1992 match this.CreateBitmapFromSourceRect(::windows::core::from_raw_borrowed(&pibitmapsource), ::core::mem::transmute_copy(&x), ::core::mem::transmute_copy(&y), ::core::mem::transmute_copy(&width), ::core::mem::transmute_copy(&height)) {
1993 ::core::result::Result::Ok(ok__) => {
1994 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
1995 ::windows::core::HRESULT(0)
1996 }
1997 ::core::result::Result::Err(err) => err.into(),
1998 }
1999 }
2000 unsafe extern "system" fn CreateBitmapFromMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uiwidth: u32, uiheight: u32, pixelformat: *const ::windows::core::GUID, cbstride: u32, cbbuffersize: u32, pbbuffer: *const u8, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2001 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2002 let this = (*this).get_impl();
2003 match this.CreateBitmapFromMemory(::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight), ::core::mem::transmute_copy(&pixelformat), ::core::mem::transmute_copy(&cbstride), ::core::mem::transmute_copy(&cbbuffersize), ::core::mem::transmute_copy(&pbbuffer)) {
2004 ::core::result::Result::Ok(ok__) => {
2005 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
2006 ::windows::core::HRESULT(0)
2007 }
2008 ::core::result::Result::Err(err) => err.into(),
2009 }
2010 }
2011 unsafe extern "system" fn CreateBitmapFromHBITMAP<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hbitmap: super::Gdi::HBITMAP, hpalette: super::Gdi::HPALETTE, options: WICBitmapAlphaChannelOption, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2012 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2013 let this = (*this).get_impl();
2014 match this.CreateBitmapFromHBITMAP(::core::mem::transmute_copy(&hbitmap), ::core::mem::transmute_copy(&hpalette), ::core::mem::transmute_copy(&options)) {
2015 ::core::result::Result::Ok(ok__) => {
2016 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
2017 ::windows::core::HRESULT(0)
2018 }
2019 ::core::result::Result::Err(err) => err.into(),
2020 }
2021 }
2022 unsafe extern "system" fn CreateBitmapFromHICON<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hicon: super::super::UI::WindowsAndMessaging::HICON, ppibitmap: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2023 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2024 let this = (*this).get_impl();
2025 match this.CreateBitmapFromHICON(::core::mem::transmute_copy(&hicon)) {
2026 ::core::result::Result::Ok(ok__) => {
2027 ::core::ptr::write(ppibitmap, ::core::mem::transmute(ok__));
2028 ::windows::core::HRESULT(0)
2029 }
2030 ::core::result::Result::Err(err) => err.into(),
2031 }
2032 }
2033 unsafe extern "system" fn CreateComponentEnumerator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, componenttypes: u32, options: u32, ppienumunknown: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2034 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2035 let this = (*this).get_impl();
2036 match this.CreateComponentEnumerator(::core::mem::transmute_copy(&componenttypes), ::core::mem::transmute_copy(&options)) {
2037 ::core::result::Result::Ok(ok__) => {
2038 ::core::ptr::write(ppienumunknown, ::core::mem::transmute(ok__));
2039 ::windows::core::HRESULT(0)
2040 }
2041 ::core::result::Result::Err(err) => err.into(),
2042 }
2043 }
2044 unsafe extern "system" fn CreateFastMetadataEncoderFromDecoder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidecoder: *mut ::core::ffi::c_void, ppifastencoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2045 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2046 let this = (*this).get_impl();
2047 match this.CreateFastMetadataEncoderFromDecoder(::windows::core::from_raw_borrowed(&pidecoder)) {
2048 ::core::result::Result::Ok(ok__) => {
2049 ::core::ptr::write(ppifastencoder, ::core::mem::transmute(ok__));
2050 ::windows::core::HRESULT(0)
2051 }
2052 ::core::result::Result::Err(err) => err.into(),
2053 }
2054 }
2055 unsafe extern "system" fn CreateFastMetadataEncoderFromFrameDecode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piframedecoder: *mut ::core::ffi::c_void, ppifastencoder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2056 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2057 let this = (*this).get_impl();
2058 match this.CreateFastMetadataEncoderFromFrameDecode(::windows::core::from_raw_borrowed(&piframedecoder)) {
2059 ::core::result::Result::Ok(ok__) => {
2060 ::core::ptr::write(ppifastencoder, ::core::mem::transmute(ok__));
2061 ::windows::core::HRESULT(0)
2062 }
2063 ::core::result::Result::Err(err) => err.into(),
2064 }
2065 }
2066 unsafe extern "system" fn CreateQueryWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidmetadataformat: *const ::windows::core::GUID, pguidvendor: *const ::windows::core::GUID, ppiquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2067 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2068 let this = (*this).get_impl();
2069 match this.CreateQueryWriter(::core::mem::transmute_copy(&guidmetadataformat), ::core::mem::transmute_copy(&pguidvendor)) {
2070 ::core::result::Result::Ok(ok__) => {
2071 ::core::ptr::write(ppiquerywriter, ::core::mem::transmute(ok__));
2072 ::windows::core::HRESULT(0)
2073 }
2074 ::core::result::Result::Err(err) => err.into(),
2075 }
2076 }
2077 unsafe extern "system" fn CreateQueryWriterFromReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICImagingFactory_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piqueryreader: *mut ::core::ffi::c_void, pguidvendor: *const ::windows::core::GUID, ppiquerywriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2078 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2079 let this = (*this).get_impl();
2080 match this.CreateQueryWriterFromReader(::windows::core::from_raw_borrowed(&piqueryreader), ::core::mem::transmute_copy(&pguidvendor)) {
2081 ::core::result::Result::Ok(ok__) => {
2082 ::core::ptr::write(ppiquerywriter, ::core::mem::transmute(ok__));
2083 ::windows::core::HRESULT(0)
2084 }
2085 ::core::result::Result::Err(err) => err.into(),
2086 }
2087 }
2088 Self {
2089 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2090 CreateDecoderFromFilename: CreateDecoderFromFilename::<Identity, Impl, OFFSET>,
2091 CreateDecoderFromStream: CreateDecoderFromStream::<Identity, Impl, OFFSET>,
2092 CreateDecoderFromFileHandle: CreateDecoderFromFileHandle::<Identity, Impl, OFFSET>,
2093 CreateComponentInfo: CreateComponentInfo::<Identity, Impl, OFFSET>,
2094 CreateDecoder: CreateDecoder::<Identity, Impl, OFFSET>,
2095 CreateEncoder: CreateEncoder::<Identity, Impl, OFFSET>,
2096 CreatePalette: CreatePalette::<Identity, Impl, OFFSET>,
2097 CreateFormatConverter: CreateFormatConverter::<Identity, Impl, OFFSET>,
2098 CreateBitmapScaler: CreateBitmapScaler::<Identity, Impl, OFFSET>,
2099 CreateBitmapClipper: CreateBitmapClipper::<Identity, Impl, OFFSET>,
2100 CreateBitmapFlipRotator: CreateBitmapFlipRotator::<Identity, Impl, OFFSET>,
2101 CreateStream: CreateStream::<Identity, Impl, OFFSET>,
2102 CreateColorContext: CreateColorContext::<Identity, Impl, OFFSET>,
2103 CreateColorTransformer: CreateColorTransformer::<Identity, Impl, OFFSET>,
2104 CreateBitmap: CreateBitmap::<Identity, Impl, OFFSET>,
2105 CreateBitmapFromSource: CreateBitmapFromSource::<Identity, Impl, OFFSET>,
2106 CreateBitmapFromSourceRect: CreateBitmapFromSourceRect::<Identity, Impl, OFFSET>,
2107 CreateBitmapFromMemory: CreateBitmapFromMemory::<Identity, Impl, OFFSET>,
2108 CreateBitmapFromHBITMAP: CreateBitmapFromHBITMAP::<Identity, Impl, OFFSET>,
2109 CreateBitmapFromHICON: CreateBitmapFromHICON::<Identity, Impl, OFFSET>,
2110 CreateComponentEnumerator: CreateComponentEnumerator::<Identity, Impl, OFFSET>,
2111 CreateFastMetadataEncoderFromDecoder: CreateFastMetadataEncoderFromDecoder::<Identity, Impl, OFFSET>,
2112 CreateFastMetadataEncoderFromFrameDecode: CreateFastMetadataEncoderFromFrameDecode::<Identity, Impl, OFFSET>,
2113 CreateQueryWriter: CreateQueryWriter::<Identity, Impl, OFFSET>,
2114 CreateQueryWriterFromReader: CreateQueryWriterFromReader::<Identity, Impl, OFFSET>,
2115 }
2116 }
2117 pub fn matches(iid: &windows::core::GUID) -> bool {
2118 iid == &<IWICImagingFactory as ::windows::core::ComInterface>::IID
2119 }
2120}
2121#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"implement\"`*"]
2122#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2123pub trait IWICJpegFrameDecode_Impl: Sized {
2124 fn DoesSupportIndexing(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2125 fn SetIndexing(&self, options: WICJpegIndexingOptions, horizontalintervalsize: u32) -> ::windows::core::Result<()>;
2126 fn ClearIndexing(&self) -> ::windows::core::Result<()>;
2127 fn GetAcHuffmanTable(&self, scanindex: u32, tableindex: u32, pachuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_AC_HUFFMAN_TABLE) -> ::windows::core::Result<()>;
2128 fn GetDcHuffmanTable(&self, scanindex: u32, tableindex: u32, pdchuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_DC_HUFFMAN_TABLE) -> ::windows::core::Result<()>;
2129 fn GetQuantizationTable(&self, scanindex: u32, tableindex: u32, pquantizationtable: *mut super::Dxgi::Common::DXGI_JPEG_QUANTIZATION_TABLE) -> ::windows::core::Result<()>;
2130 fn GetFrameHeader(&self, pframeheader: *mut WICJpegFrameHeader) -> ::windows::core::Result<()>;
2131 fn GetScanHeader(&self, scanindex: u32, pscanheader: *mut WICJpegScanHeader) -> ::windows::core::Result<()>;
2132 fn CopyScan(&self, scanindex: u32, scanoffset: u32, cbscandata: u32, pbscandata: *mut u8, pcbscandataactual: *mut u32) -> ::windows::core::Result<()>;
2133 fn CopyMinimalStream(&self, streamoffset: u32, cbstreamdata: u32, pbstreamdata: *mut u8, pcbstreamdataactual: *mut u32) -> ::windows::core::Result<()>;
2134}
2135#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2136impl ::windows::core::RuntimeName for IWICJpegFrameDecode {}
2137#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Dxgi_Common"))]
2138impl IWICJpegFrameDecode_Vtbl {
2139 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>() -> IWICJpegFrameDecode_Vtbl {
2140 unsafe extern "system" fn DoesSupportIndexing<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfindexingsupported: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2141 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2142 let this = (*this).get_impl();
2143 match this.DoesSupportIndexing() {
2144 ::core::result::Result::Ok(ok__) => {
2145 ::core::ptr::write(pfindexingsupported, ::core::mem::transmute(ok__));
2146 ::windows::core::HRESULT(0)
2147 }
2148 ::core::result::Result::Err(err) => err.into(),
2149 }
2150 }
2151 unsafe extern "system" fn SetIndexing<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, options: WICJpegIndexingOptions, horizontalintervalsize: u32) -> ::windows::core::HRESULT {
2152 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2153 let this = (*this).get_impl();
2154 this.SetIndexing(::core::mem::transmute_copy(&options), ::core::mem::transmute_copy(&horizontalintervalsize)).into()
2155 }
2156 unsafe extern "system" fn ClearIndexing<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2157 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2158 let this = (*this).get_impl();
2159 this.ClearIndexing().into()
2160 }
2161 unsafe extern "system" fn GetAcHuffmanTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pachuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_AC_HUFFMAN_TABLE) -> ::windows::core::HRESULT {
2162 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2163 let this = (*this).get_impl();
2164 this.GetAcHuffmanTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pachuffmantable)).into()
2165 }
2166 unsafe extern "system" fn GetDcHuffmanTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pdchuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_DC_HUFFMAN_TABLE) -> ::windows::core::HRESULT {
2167 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2168 let this = (*this).get_impl();
2169 this.GetDcHuffmanTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pdchuffmantable)).into()
2170 }
2171 unsafe extern "system" fn GetQuantizationTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pquantizationtable: *mut super::Dxgi::Common::DXGI_JPEG_QUANTIZATION_TABLE) -> ::windows::core::HRESULT {
2172 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2173 let this = (*this).get_impl();
2174 this.GetQuantizationTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pquantizationtable)).into()
2175 }
2176 unsafe extern "system" fn GetFrameHeader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pframeheader: *mut WICJpegFrameHeader) -> ::windows::core::HRESULT {
2177 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2178 let this = (*this).get_impl();
2179 this.GetFrameHeader(::core::mem::transmute_copy(&pframeheader)).into()
2180 }
2181 unsafe extern "system" fn GetScanHeader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, pscanheader: *mut WICJpegScanHeader) -> ::windows::core::HRESULT {
2182 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2183 let this = (*this).get_impl();
2184 this.GetScanHeader(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&pscanheader)).into()
2185 }
2186 unsafe extern "system" fn CopyScan<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, scanoffset: u32, cbscandata: u32, pbscandata: *mut u8, pcbscandataactual: *mut u32) -> ::windows::core::HRESULT {
2187 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2188 let this = (*this).get_impl();
2189 this.CopyScan(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&scanoffset), ::core::mem::transmute_copy(&cbscandata), ::core::mem::transmute_copy(&pbscandata), ::core::mem::transmute_copy(&pcbscandataactual)).into()
2190 }
2191 unsafe extern "system" fn CopyMinimalStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameDecode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streamoffset: u32, cbstreamdata: u32, pbstreamdata: *mut u8, pcbstreamdataactual: *mut u32) -> ::windows::core::HRESULT {
2192 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2193 let this = (*this).get_impl();
2194 this.CopyMinimalStream(::core::mem::transmute_copy(&streamoffset), ::core::mem::transmute_copy(&cbstreamdata), ::core::mem::transmute_copy(&pbstreamdata), ::core::mem::transmute_copy(&pcbstreamdataactual)).into()
2195 }
2196 Self {
2197 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2198 DoesSupportIndexing: DoesSupportIndexing::<Identity, Impl, OFFSET>,
2199 SetIndexing: SetIndexing::<Identity, Impl, OFFSET>,
2200 ClearIndexing: ClearIndexing::<Identity, Impl, OFFSET>,
2201 GetAcHuffmanTable: GetAcHuffmanTable::<Identity, Impl, OFFSET>,
2202 GetDcHuffmanTable: GetDcHuffmanTable::<Identity, Impl, OFFSET>,
2203 GetQuantizationTable: GetQuantizationTable::<Identity, Impl, OFFSET>,
2204 GetFrameHeader: GetFrameHeader::<Identity, Impl, OFFSET>,
2205 GetScanHeader: GetScanHeader::<Identity, Impl, OFFSET>,
2206 CopyScan: CopyScan::<Identity, Impl, OFFSET>,
2207 CopyMinimalStream: CopyMinimalStream::<Identity, Impl, OFFSET>,
2208 }
2209 }
2210 pub fn matches(iid: &windows::core::GUID) -> bool {
2211 iid == &<IWICJpegFrameDecode as ::windows::core::ComInterface>::IID
2212 }
2213}
2214#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Graphics_Dxgi_Common\"`, `\"implement\"`*"]
2215#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2216pub trait IWICJpegFrameEncode_Impl: Sized {
2217 fn GetAcHuffmanTable(&self, scanindex: u32, tableindex: u32, pachuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_AC_HUFFMAN_TABLE) -> ::windows::core::Result<()>;
2218 fn GetDcHuffmanTable(&self, scanindex: u32, tableindex: u32, pdchuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_DC_HUFFMAN_TABLE) -> ::windows::core::Result<()>;
2219 fn GetQuantizationTable(&self, scanindex: u32, tableindex: u32, pquantizationtable: *mut super::Dxgi::Common::DXGI_JPEG_QUANTIZATION_TABLE) -> ::windows::core::Result<()>;
2220 fn WriteScan(&self, cbscandata: u32, pbscandata: *const u8) -> ::windows::core::Result<()>;
2221}
2222#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2223impl ::windows::core::RuntimeName for IWICJpegFrameEncode {}
2224#[cfg(feature = "Win32_Graphics_Dxgi_Common")]
2225impl IWICJpegFrameEncode_Vtbl {
2226 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameEncode_Impl, const OFFSET: isize>() -> IWICJpegFrameEncode_Vtbl {
2227 unsafe extern "system" fn GetAcHuffmanTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pachuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_AC_HUFFMAN_TABLE) -> ::windows::core::HRESULT {
2228 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2229 let this = (*this).get_impl();
2230 this.GetAcHuffmanTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pachuffmantable)).into()
2231 }
2232 unsafe extern "system" fn GetDcHuffmanTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pdchuffmantable: *mut super::Dxgi::Common::DXGI_JPEG_DC_HUFFMAN_TABLE) -> ::windows::core::HRESULT {
2233 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2234 let this = (*this).get_impl();
2235 this.GetDcHuffmanTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pdchuffmantable)).into()
2236 }
2237 unsafe extern "system" fn GetQuantizationTable<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, scanindex: u32, tableindex: u32, pquantizationtable: *mut super::Dxgi::Common::DXGI_JPEG_QUANTIZATION_TABLE) -> ::windows::core::HRESULT {
2238 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2239 let this = (*this).get_impl();
2240 this.GetQuantizationTable(::core::mem::transmute_copy(&scanindex), ::core::mem::transmute_copy(&tableindex), ::core::mem::transmute_copy(&pquantizationtable)).into()
2241 }
2242 unsafe extern "system" fn WriteScan<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICJpegFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbscandata: u32, pbscandata: *const u8) -> ::windows::core::HRESULT {
2243 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2244 let this = (*this).get_impl();
2245 this.WriteScan(::core::mem::transmute_copy(&cbscandata), ::core::mem::transmute_copy(&pbscandata)).into()
2246 }
2247 Self {
2248 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2249 GetAcHuffmanTable: GetAcHuffmanTable::<Identity, Impl, OFFSET>,
2250 GetDcHuffmanTable: GetDcHuffmanTable::<Identity, Impl, OFFSET>,
2251 GetQuantizationTable: GetQuantizationTable::<Identity, Impl, OFFSET>,
2252 WriteScan: WriteScan::<Identity, Impl, OFFSET>,
2253 }
2254 }
2255 pub fn matches(iid: &windows::core::GUID) -> bool {
2256 iid == &<IWICJpegFrameEncode as ::windows::core::ComInterface>::IID
2257 }
2258}
2259#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2260#[cfg(feature = "Win32_System_Com")]
2261pub trait IWICMetadataBlockReader_Impl: Sized {
2262 fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
2263 fn GetCount(&self) -> ::windows::core::Result<u32>;
2264 fn GetReaderByIndex(&self, nindex: u32) -> ::windows::core::Result<IWICMetadataReader>;
2265 fn GetEnumerator(&self) -> ::windows::core::Result<super::super::System::Com::IEnumUnknown>;
2266}
2267#[cfg(feature = "Win32_System_Com")]
2268impl ::windows::core::RuntimeName for IWICMetadataBlockReader {}
2269#[cfg(feature = "Win32_System_Com")]
2270impl IWICMetadataBlockReader_Vtbl {
2271 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockReader_Impl, const OFFSET: isize>() -> IWICMetadataBlockReader_Vtbl {
2272 unsafe extern "system" fn GetContainerFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcontainerformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
2273 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2274 let this = (*this).get_impl();
2275 match this.GetContainerFormat() {
2276 ::core::result::Result::Ok(ok__) => {
2277 ::core::ptr::write(pguidcontainerformat, ::core::mem::transmute(ok__));
2278 ::windows::core::HRESULT(0)
2279 }
2280 ::core::result::Result::Err(err) => err.into(),
2281 }
2282 }
2283 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pccount: *mut u32) -> ::windows::core::HRESULT {
2284 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2285 let this = (*this).get_impl();
2286 match this.GetCount() {
2287 ::core::result::Result::Ok(ok__) => {
2288 ::core::ptr::write(pccount, ::core::mem::transmute(ok__));
2289 ::windows::core::HRESULT(0)
2290 }
2291 ::core::result::Result::Err(err) => err.into(),
2292 }
2293 }
2294 unsafe extern "system" fn GetReaderByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, ppimetadatareader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2295 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2296 let this = (*this).get_impl();
2297 match this.GetReaderByIndex(::core::mem::transmute_copy(&nindex)) {
2298 ::core::result::Result::Ok(ok__) => {
2299 ::core::ptr::write(ppimetadatareader, ::core::mem::transmute(ok__));
2300 ::windows::core::HRESULT(0)
2301 }
2302 ::core::result::Result::Err(err) => err.into(),
2303 }
2304 }
2305 unsafe extern "system" fn GetEnumerator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienummetadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2306 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2307 let this = (*this).get_impl();
2308 match this.GetEnumerator() {
2309 ::core::result::Result::Ok(ok__) => {
2310 ::core::ptr::write(ppienummetadata, ::core::mem::transmute(ok__));
2311 ::windows::core::HRESULT(0)
2312 }
2313 ::core::result::Result::Err(err) => err.into(),
2314 }
2315 }
2316 Self {
2317 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2318 GetContainerFormat: GetContainerFormat::<Identity, Impl, OFFSET>,
2319 GetCount: GetCount::<Identity, Impl, OFFSET>,
2320 GetReaderByIndex: GetReaderByIndex::<Identity, Impl, OFFSET>,
2321 GetEnumerator: GetEnumerator::<Identity, Impl, OFFSET>,
2322 }
2323 }
2324 pub fn matches(iid: &windows::core::GUID) -> bool {
2325 iid == &<IWICMetadataBlockReader as ::windows::core::ComInterface>::IID
2326 }
2327}
2328#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2329#[cfg(feature = "Win32_System_Com")]
2330pub trait IWICMetadataBlockWriter_Impl: Sized + IWICMetadataBlockReader_Impl {
2331 fn InitializeFromBlockReader(&self, pimdblockreader: ::core::option::Option<&IWICMetadataBlockReader>) -> ::windows::core::Result<()>;
2332 fn GetWriterByIndex(&self, nindex: u32) -> ::windows::core::Result<IWICMetadataWriter>;
2333 fn AddWriter(&self, pimetadatawriter: ::core::option::Option<&IWICMetadataWriter>) -> ::windows::core::Result<()>;
2334 fn SetWriterByIndex(&self, nindex: u32, pimetadatawriter: ::core::option::Option<&IWICMetadataWriter>) -> ::windows::core::Result<()>;
2335 fn RemoveWriterByIndex(&self, nindex: u32) -> ::windows::core::Result<()>;
2336}
2337#[cfg(feature = "Win32_System_Com")]
2338impl ::windows::core::RuntimeName for IWICMetadataBlockWriter {}
2339#[cfg(feature = "Win32_System_Com")]
2340impl IWICMetadataBlockWriter_Vtbl {
2341 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>() -> IWICMetadataBlockWriter_Vtbl {
2342 unsafe extern "system" fn InitializeFromBlockReader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pimdblockreader: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2343 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2344 let this = (*this).get_impl();
2345 this.InitializeFromBlockReader(::windows::core::from_raw_borrowed(&pimdblockreader)).into()
2346 }
2347 unsafe extern "system" fn GetWriterByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, ppimetadatawriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2348 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2349 let this = (*this).get_impl();
2350 match this.GetWriterByIndex(::core::mem::transmute_copy(&nindex)) {
2351 ::core::result::Result::Ok(ok__) => {
2352 ::core::ptr::write(ppimetadatawriter, ::core::mem::transmute(ok__));
2353 ::windows::core::HRESULT(0)
2354 }
2355 ::core::result::Result::Err(err) => err.into(),
2356 }
2357 }
2358 unsafe extern "system" fn AddWriter<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pimetadatawriter: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2359 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2360 let this = (*this).get_impl();
2361 this.AddWriter(::windows::core::from_raw_borrowed(&pimetadatawriter)).into()
2362 }
2363 unsafe extern "system" fn SetWriterByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pimetadatawriter: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2364 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2365 let this = (*this).get_impl();
2366 this.SetWriterByIndex(::core::mem::transmute_copy(&nindex), ::windows::core::from_raw_borrowed(&pimetadatawriter)).into()
2367 }
2368 unsafe extern "system" fn RemoveWriterByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataBlockWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows::core::HRESULT {
2369 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2370 let this = (*this).get_impl();
2371 this.RemoveWriterByIndex(::core::mem::transmute_copy(&nindex)).into()
2372 }
2373 Self {
2374 base__: IWICMetadataBlockReader_Vtbl::new::<Identity, Impl, OFFSET>(),
2375 InitializeFromBlockReader: InitializeFromBlockReader::<Identity, Impl, OFFSET>,
2376 GetWriterByIndex: GetWriterByIndex::<Identity, Impl, OFFSET>,
2377 AddWriter: AddWriter::<Identity, Impl, OFFSET>,
2378 SetWriterByIndex: SetWriterByIndex::<Identity, Impl, OFFSET>,
2379 RemoveWriterByIndex: RemoveWriterByIndex::<Identity, Impl, OFFSET>,
2380 }
2381 }
2382 pub fn matches(iid: &windows::core::GUID) -> bool {
2383 iid == &<IWICMetadataBlockWriter as ::windows::core::ComInterface>::IID || iid == &<IWICMetadataBlockReader as ::windows::core::ComInterface>::IID
2384 }
2385}
2386#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
2387#[cfg(feature = "Win32_Foundation")]
2388pub trait IWICMetadataHandlerInfo_Impl: Sized + IWICComponentInfo_Impl {
2389 fn GetMetadataFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
2390 fn GetContainerFormats(&self, ccontainerformats: u32, pguidcontainerformats: *mut ::windows::core::GUID, pcchactual: *mut u32) -> ::windows::core::Result<()>;
2391 fn GetDeviceManufacturer(&self, cchdevicemanufacturer: u32, wzdevicemanufacturer: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
2392 fn GetDeviceModels(&self, cchdevicemodels: u32, wzdevicemodels: &::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::Result<()>;
2393 fn DoesRequireFullStream(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2394 fn DoesSupportPadding(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2395 fn DoesRequireFixedSize(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2396}
2397#[cfg(feature = "Win32_Foundation")]
2398impl ::windows::core::RuntimeName for IWICMetadataHandlerInfo {}
2399#[cfg(feature = "Win32_Foundation")]
2400impl IWICMetadataHandlerInfo_Vtbl {
2401 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>() -> IWICMetadataHandlerInfo_Vtbl {
2402 unsafe extern "system" fn GetMetadataFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidmetadataformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
2403 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2404 let this = (*this).get_impl();
2405 match this.GetMetadataFormat() {
2406 ::core::result::Result::Ok(ok__) => {
2407 ::core::ptr::write(pguidmetadataformat, ::core::mem::transmute(ok__));
2408 ::windows::core::HRESULT(0)
2409 }
2410 ::core::result::Result::Err(err) => err.into(),
2411 }
2412 }
2413 unsafe extern "system" fn GetContainerFormats<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccontainerformats: u32, pguidcontainerformats: *mut ::windows::core::GUID, pcchactual: *mut u32) -> ::windows::core::HRESULT {
2414 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2415 let this = (*this).get_impl();
2416 this.GetContainerFormats(::core::mem::transmute_copy(&ccontainerformats), ::core::mem::transmute_copy(&pguidcontainerformats), ::core::mem::transmute_copy(&pcchactual)).into()
2417 }
2418 unsafe extern "system" fn GetDeviceManufacturer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchdevicemanufacturer: u32, wzdevicemanufacturer: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
2419 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2420 let this = (*this).get_impl();
2421 this.GetDeviceManufacturer(::core::mem::transmute_copy(&cchdevicemanufacturer), ::core::mem::transmute(&wzdevicemanufacturer), ::core::mem::transmute_copy(&pcchactual)).into()
2422 }
2423 unsafe extern "system" fn GetDeviceModels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchdevicemodels: u32, wzdevicemodels: ::windows::core::PWSTR, pcchactual: *mut u32) -> ::windows::core::HRESULT {
2424 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2425 let this = (*this).get_impl();
2426 this.GetDeviceModels(::core::mem::transmute_copy(&cchdevicemodels), ::core::mem::transmute(&wzdevicemodels), ::core::mem::transmute_copy(&pcchactual)).into()
2427 }
2428 unsafe extern "system" fn DoesRequireFullStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfrequiresfullstream: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2429 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2430 let this = (*this).get_impl();
2431 match this.DoesRequireFullStream() {
2432 ::core::result::Result::Ok(ok__) => {
2433 ::core::ptr::write(pfrequiresfullstream, ::core::mem::transmute(ok__));
2434 ::windows::core::HRESULT(0)
2435 }
2436 ::core::result::Result::Err(err) => err.into(),
2437 }
2438 }
2439 unsafe extern "system" fn DoesSupportPadding<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportspadding: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2440 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2441 let this = (*this).get_impl();
2442 match this.DoesSupportPadding() {
2443 ::core::result::Result::Ok(ok__) => {
2444 ::core::ptr::write(pfsupportspadding, ::core::mem::transmute(ok__));
2445 ::windows::core::HRESULT(0)
2446 }
2447 ::core::result::Result::Err(err) => err.into(),
2448 }
2449 }
2450 unsafe extern "system" fn DoesRequireFixedSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataHandlerInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pffixedsize: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2451 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2452 let this = (*this).get_impl();
2453 match this.DoesRequireFixedSize() {
2454 ::core::result::Result::Ok(ok__) => {
2455 ::core::ptr::write(pffixedsize, ::core::mem::transmute(ok__));
2456 ::windows::core::HRESULT(0)
2457 }
2458 ::core::result::Result::Err(err) => err.into(),
2459 }
2460 }
2461 Self {
2462 base__: IWICComponentInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
2463 GetMetadataFormat: GetMetadataFormat::<Identity, Impl, OFFSET>,
2464 GetContainerFormats: GetContainerFormats::<Identity, Impl, OFFSET>,
2465 GetDeviceManufacturer: GetDeviceManufacturer::<Identity, Impl, OFFSET>,
2466 GetDeviceModels: GetDeviceModels::<Identity, Impl, OFFSET>,
2467 DoesRequireFullStream: DoesRequireFullStream::<Identity, Impl, OFFSET>,
2468 DoesSupportPadding: DoesSupportPadding::<Identity, Impl, OFFSET>,
2469 DoesRequireFixedSize: DoesRequireFixedSize::<Identity, Impl, OFFSET>,
2470 }
2471 }
2472 pub fn matches(iid: &windows::core::GUID) -> bool {
2473 iid == &<IWICMetadataHandlerInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID
2474 }
2475}
2476#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
2477#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2478pub trait IWICMetadataQueryReader_Impl: Sized {
2479 fn GetContainerFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
2480 fn GetLocation(&self, cchmaxlength: u32, wznamespace: &::windows::core::PWSTR, pcchactuallength: *mut u32) -> ::windows::core::Result<()>;
2481 fn GetMetadataByName(&self, wzname: &::windows::core::PCWSTR, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2482 fn GetEnumerator(&self) -> ::windows::core::Result<super::super::System::Com::IEnumString>;
2483}
2484#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2485impl ::windows::core::RuntimeName for IWICMetadataQueryReader {}
2486#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2487impl IWICMetadataQueryReader_Vtbl {
2488 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryReader_Impl, const OFFSET: isize>() -> IWICMetadataQueryReader_Vtbl {
2489 unsafe extern "system" fn GetContainerFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidcontainerformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
2490 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2491 let this = (*this).get_impl();
2492 match this.GetContainerFormat() {
2493 ::core::result::Result::Ok(ok__) => {
2494 ::core::ptr::write(pguidcontainerformat, ::core::mem::transmute(ok__));
2495 ::windows::core::HRESULT(0)
2496 }
2497 ::core::result::Result::Err(err) => err.into(),
2498 }
2499 }
2500 unsafe extern "system" fn GetLocation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cchmaxlength: u32, wznamespace: ::windows::core::PWSTR, pcchactuallength: *mut u32) -> ::windows::core::HRESULT {
2501 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2502 let this = (*this).get_impl();
2503 this.GetLocation(::core::mem::transmute_copy(&cchmaxlength), ::core::mem::transmute(&wznamespace), ::core::mem::transmute_copy(&pcchactuallength)).into()
2504 }
2505 unsafe extern "system" fn GetMetadataByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzname: ::windows::core::PCWSTR, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2506 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2507 let this = (*this).get_impl();
2508 this.GetMetadataByName(::core::mem::transmute(&wzname), ::core::mem::transmute_copy(&pvarvalue)).into()
2509 }
2510 unsafe extern "system" fn GetEnumerator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienumstring: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2511 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2512 let this = (*this).get_impl();
2513 match this.GetEnumerator() {
2514 ::core::result::Result::Ok(ok__) => {
2515 ::core::ptr::write(ppienumstring, ::core::mem::transmute(ok__));
2516 ::windows::core::HRESULT(0)
2517 }
2518 ::core::result::Result::Err(err) => err.into(),
2519 }
2520 }
2521 Self {
2522 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2523 GetContainerFormat: GetContainerFormat::<Identity, Impl, OFFSET>,
2524 GetLocation: GetLocation::<Identity, Impl, OFFSET>,
2525 GetMetadataByName: GetMetadataByName::<Identity, Impl, OFFSET>,
2526 GetEnumerator: GetEnumerator::<Identity, Impl, OFFSET>,
2527 }
2528 }
2529 pub fn matches(iid: &windows::core::GUID) -> bool {
2530 iid == &<IWICMetadataQueryReader as ::windows::core::ComInterface>::IID
2531 }
2532}
2533#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
2534#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2535pub trait IWICMetadataQueryWriter_Impl: Sized + IWICMetadataQueryReader_Impl {
2536 fn SetMetadataByName(&self, wzname: &::windows::core::PCWSTR, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2537 fn RemoveMetadataByName(&self, wzname: &::windows::core::PCWSTR) -> ::windows::core::Result<()>;
2538}
2539#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2540impl ::windows::core::RuntimeName for IWICMetadataQueryWriter {}
2541#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2542impl IWICMetadataQueryWriter_Vtbl {
2543 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryWriter_Impl, const OFFSET: isize>() -> IWICMetadataQueryWriter_Vtbl {
2544 unsafe extern "system" fn SetMetadataByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzname: ::windows::core::PCWSTR, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2545 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2546 let this = (*this).get_impl();
2547 this.SetMetadataByName(::core::mem::transmute(&wzname), ::core::mem::transmute_copy(&pvarvalue)).into()
2548 }
2549 unsafe extern "system" fn RemoveMetadataByName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataQueryWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzname: ::windows::core::PCWSTR) -> ::windows::core::HRESULT {
2550 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2551 let this = (*this).get_impl();
2552 this.RemoveMetadataByName(::core::mem::transmute(&wzname)).into()
2553 }
2554 Self {
2555 base__: IWICMetadataQueryReader_Vtbl::new::<Identity, Impl, OFFSET>(),
2556 SetMetadataByName: SetMetadataByName::<Identity, Impl, OFFSET>,
2557 RemoveMetadataByName: RemoveMetadataByName::<Identity, Impl, OFFSET>,
2558 }
2559 }
2560 pub fn matches(iid: &windows::core::GUID) -> bool {
2561 iid == &<IWICMetadataQueryWriter as ::windows::core::ComInterface>::IID || iid == &<IWICMetadataQueryReader as ::windows::core::ComInterface>::IID
2562 }
2563}
2564#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
2565#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2566pub trait IWICMetadataReader_Impl: Sized {
2567 fn GetMetadataFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
2568 fn GetMetadataHandlerInfo(&self) -> ::windows::core::Result<IWICMetadataHandlerInfo>;
2569 fn GetCount(&self) -> ::windows::core::Result<u32>;
2570 fn GetValueByIndex(&self, nindex: u32, pvarschema: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2571 fn GetValue(&self, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2572 fn GetEnumerator(&self) -> ::windows::core::Result<IWICEnumMetadataItem>;
2573}
2574#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2575impl ::windows::core::RuntimeName for IWICMetadataReader {}
2576#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2577impl IWICMetadataReader_Vtbl {
2578 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>() -> IWICMetadataReader_Vtbl {
2579 unsafe extern "system" fn GetMetadataFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidmetadataformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
2580 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2581 let this = (*this).get_impl();
2582 match this.GetMetadataFormat() {
2583 ::core::result::Result::Ok(ok__) => {
2584 ::core::ptr::write(pguidmetadataformat, ::core::mem::transmute(ok__));
2585 ::windows::core::HRESULT(0)
2586 }
2587 ::core::result::Result::Err(err) => err.into(),
2588 }
2589 }
2590 unsafe extern "system" fn GetMetadataHandlerInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppihandler: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2591 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2592 let this = (*this).get_impl();
2593 match this.GetMetadataHandlerInfo() {
2594 ::core::result::Result::Ok(ok__) => {
2595 ::core::ptr::write(ppihandler, ::core::mem::transmute(ok__));
2596 ::windows::core::HRESULT(0)
2597 }
2598 ::core::result::Result::Err(err) => err.into(),
2599 }
2600 }
2601 unsafe extern "system" fn GetCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pccount: *mut u32) -> ::windows::core::HRESULT {
2602 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2603 let this = (*this).get_impl();
2604 match this.GetCount() {
2605 ::core::result::Result::Ok(ok__) => {
2606 ::core::ptr::write(pccount, ::core::mem::transmute(ok__));
2607 ::windows::core::HRESULT(0)
2608 }
2609 ::core::result::Result::Err(err) => err.into(),
2610 }
2611 }
2612 unsafe extern "system" fn GetValueByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pvarschema: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *mut super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2613 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2614 let this = (*this).get_impl();
2615 this.GetValueByIndex(::core::mem::transmute_copy(&nindex), ::core::mem::transmute_copy(&pvarschema), ::core::mem::transmute_copy(&pvarid), ::core::mem::transmute_copy(&pvarvalue)).into()
2616 }
2617 unsafe extern "system" fn GetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *mut super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2618 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2619 let this = (*this).get_impl();
2620 this.GetValue(::core::mem::transmute_copy(&pvarschema), ::core::mem::transmute_copy(&pvarid), ::core::mem::transmute_copy(&pvarvalue)).into()
2621 }
2622 unsafe extern "system" fn GetEnumerator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienummetadata: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2623 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2624 let this = (*this).get_impl();
2625 match this.GetEnumerator() {
2626 ::core::result::Result::Ok(ok__) => {
2627 ::core::ptr::write(ppienummetadata, ::core::mem::transmute(ok__));
2628 ::windows::core::HRESULT(0)
2629 }
2630 ::core::result::Result::Err(err) => err.into(),
2631 }
2632 }
2633 Self {
2634 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2635 GetMetadataFormat: GetMetadataFormat::<Identity, Impl, OFFSET>,
2636 GetMetadataHandlerInfo: GetMetadataHandlerInfo::<Identity, Impl, OFFSET>,
2637 GetCount: GetCount::<Identity, Impl, OFFSET>,
2638 GetValueByIndex: GetValueByIndex::<Identity, Impl, OFFSET>,
2639 GetValue: GetValue::<Identity, Impl, OFFSET>,
2640 GetEnumerator: GetEnumerator::<Identity, Impl, OFFSET>,
2641 }
2642 }
2643 pub fn matches(iid: &windows::core::GUID) -> bool {
2644 iid == &<IWICMetadataReader as ::windows::core::ComInterface>::IID
2645 }
2646}
2647#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2648#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2649pub trait IWICMetadataReaderInfo_Impl: Sized + IWICMetadataHandlerInfo_Impl {
2650 fn GetPatterns(&self, guidcontainerformat: *const ::windows::core::GUID, cbsize: u32, ppattern: *mut WICMetadataPattern, pccount: *mut u32, pcbactual: *mut u32) -> ::windows::core::Result<()>;
2651 fn MatchesPattern(&self, guidcontainerformat: *const ::windows::core::GUID, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2652 fn CreateInstance(&self) -> ::windows::core::Result<IWICMetadataReader>;
2653}
2654#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2655impl ::windows::core::RuntimeName for IWICMetadataReaderInfo {}
2656#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2657impl IWICMetadataReaderInfo_Vtbl {
2658 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReaderInfo_Impl, const OFFSET: isize>() -> IWICMetadataReaderInfo_Vtbl {
2659 unsafe extern "system" fn GetPatterns<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReaderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, cbsize: u32, ppattern: *mut WICMetadataPattern, pccount: *mut u32, pcbactual: *mut u32) -> ::windows::core::HRESULT {
2660 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2661 let this = (*this).get_impl();
2662 this.GetPatterns(::core::mem::transmute_copy(&guidcontainerformat), ::core::mem::transmute_copy(&cbsize), ::core::mem::transmute_copy(&ppattern), ::core::mem::transmute_copy(&pccount), ::core::mem::transmute_copy(&pcbactual)).into()
2663 }
2664 unsafe extern "system" fn MatchesPattern<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReaderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, pistream: *mut ::core::ffi::c_void, pfmatches: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2665 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2666 let this = (*this).get_impl();
2667 match this.MatchesPattern(::core::mem::transmute_copy(&guidcontainerformat), ::windows::core::from_raw_borrowed(&pistream)) {
2668 ::core::result::Result::Ok(ok__) => {
2669 ::core::ptr::write(pfmatches, ::core::mem::transmute(ok__));
2670 ::windows::core::HRESULT(0)
2671 }
2672 ::core::result::Result::Err(err) => err.into(),
2673 }
2674 }
2675 unsafe extern "system" fn CreateInstance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataReaderInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppireader: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2676 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2677 let this = (*this).get_impl();
2678 match this.CreateInstance() {
2679 ::core::result::Result::Ok(ok__) => {
2680 ::core::ptr::write(ppireader, ::core::mem::transmute(ok__));
2681 ::windows::core::HRESULT(0)
2682 }
2683 ::core::result::Result::Err(err) => err.into(),
2684 }
2685 }
2686 Self {
2687 base__: IWICMetadataHandlerInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
2688 GetPatterns: GetPatterns::<Identity, Impl, OFFSET>,
2689 MatchesPattern: MatchesPattern::<Identity, Impl, OFFSET>,
2690 CreateInstance: CreateInstance::<Identity, Impl, OFFSET>,
2691 }
2692 }
2693 pub fn matches(iid: &windows::core::GUID) -> bool {
2694 iid == &<IWICMetadataReaderInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID || iid == &<IWICMetadataHandlerInfo as ::windows::core::ComInterface>::IID
2695 }
2696}
2697#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
2698#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2699pub trait IWICMetadataWriter_Impl: Sized + IWICMetadataReader_Impl {
2700 fn SetValue(&self, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2701 fn SetValueByIndex(&self, nindex: u32, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2702 fn RemoveValue(&self, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::Result<()>;
2703 fn RemoveValueByIndex(&self, nindex: u32) -> ::windows::core::Result<()>;
2704}
2705#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2706impl ::windows::core::RuntimeName for IWICMetadataWriter {}
2707#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
2708impl IWICMetadataWriter_Vtbl {
2709 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriter_Impl, const OFFSET: isize>() -> IWICMetadataWriter_Vtbl {
2710 unsafe extern "system" fn SetValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2711 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2712 let this = (*this).get_impl();
2713 this.SetValue(::core::mem::transmute_copy(&pvarschema), ::core::mem::transmute_copy(&pvarid), ::core::mem::transmute_copy(&pvarvalue)).into()
2714 }
2715 unsafe extern "system" fn SetValueByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarvalue: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2716 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2717 let this = (*this).get_impl();
2718 this.SetValueByIndex(::core::mem::transmute_copy(&nindex), ::core::mem::transmute_copy(&pvarschema), ::core::mem::transmute_copy(&pvarid), ::core::mem::transmute_copy(&pvarvalue)).into()
2719 }
2720 unsafe extern "system" fn RemoveValue<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvarschema: *const super::super::System::Com::StructuredStorage::PROPVARIANT, pvarid: *const super::super::System::Com::StructuredStorage::PROPVARIANT) -> ::windows::core::HRESULT {
2721 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2722 let this = (*this).get_impl();
2723 this.RemoveValue(::core::mem::transmute_copy(&pvarschema), ::core::mem::transmute_copy(&pvarid)).into()
2724 }
2725 unsafe extern "system" fn RemoveValueByIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nindex: u32) -> ::windows::core::HRESULT {
2726 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2727 let this = (*this).get_impl();
2728 this.RemoveValueByIndex(::core::mem::transmute_copy(&nindex)).into()
2729 }
2730 Self {
2731 base__: IWICMetadataReader_Vtbl::new::<Identity, Impl, OFFSET>(),
2732 SetValue: SetValue::<Identity, Impl, OFFSET>,
2733 SetValueByIndex: SetValueByIndex::<Identity, Impl, OFFSET>,
2734 RemoveValue: RemoveValue::<Identity, Impl, OFFSET>,
2735 RemoveValueByIndex: RemoveValueByIndex::<Identity, Impl, OFFSET>,
2736 }
2737 }
2738 pub fn matches(iid: &windows::core::GUID) -> bool {
2739 iid == &<IWICMetadataWriter as ::windows::core::ComInterface>::IID || iid == &<IWICMetadataReader as ::windows::core::ComInterface>::IID
2740 }
2741}
2742#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
2743#[cfg(feature = "Win32_Foundation")]
2744pub trait IWICMetadataWriterInfo_Impl: Sized + IWICMetadataHandlerInfo_Impl {
2745 fn GetHeader(&self, guidcontainerformat: *const ::windows::core::GUID, cbsize: u32, pheader: *mut WICMetadataHeader, pcbactual: *mut u32) -> ::windows::core::Result<()>;
2746 fn CreateInstance(&self) -> ::windows::core::Result<IWICMetadataWriter>;
2747}
2748#[cfg(feature = "Win32_Foundation")]
2749impl ::windows::core::RuntimeName for IWICMetadataWriterInfo {}
2750#[cfg(feature = "Win32_Foundation")]
2751impl IWICMetadataWriterInfo_Vtbl {
2752 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriterInfo_Impl, const OFFSET: isize>() -> IWICMetadataWriterInfo_Vtbl {
2753 unsafe extern "system" fn GetHeader<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidcontainerformat: *const ::windows::core::GUID, cbsize: u32, pheader: *mut WICMetadataHeader, pcbactual: *mut u32) -> ::windows::core::HRESULT {
2754 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2755 let this = (*this).get_impl();
2756 this.GetHeader(::core::mem::transmute_copy(&guidcontainerformat), ::core::mem::transmute_copy(&cbsize), ::core::mem::transmute_copy(&pheader), ::core::mem::transmute_copy(&pcbactual)).into()
2757 }
2758 unsafe extern "system" fn CreateInstance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICMetadataWriterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppiwriter: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2759 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2760 let this = (*this).get_impl();
2761 match this.CreateInstance() {
2762 ::core::result::Result::Ok(ok__) => {
2763 ::core::ptr::write(ppiwriter, ::core::mem::transmute(ok__));
2764 ::windows::core::HRESULT(0)
2765 }
2766 ::core::result::Result::Err(err) => err.into(),
2767 }
2768 }
2769 Self {
2770 base__: IWICMetadataHandlerInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
2771 GetHeader: GetHeader::<Identity, Impl, OFFSET>,
2772 CreateInstance: CreateInstance::<Identity, Impl, OFFSET>,
2773 }
2774 }
2775 pub fn matches(iid: &windows::core::GUID) -> bool {
2776 iid == &<IWICMetadataWriterInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID || iid == &<IWICMetadataHandlerInfo as ::windows::core::ComInterface>::IID
2777 }
2778}
2779#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
2780#[cfg(feature = "Win32_Foundation")]
2781pub trait IWICPalette_Impl: Sized {
2782 fn InitializePredefined(&self, epalettetype: WICBitmapPaletteType, faddtransparentcolor: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
2783 fn InitializeCustom(&self, pcolors: *const u32, ccount: u32) -> ::windows::core::Result<()>;
2784 fn InitializeFromBitmap(&self, pisurface: ::core::option::Option<&IWICBitmapSource>, ccount: u32, faddtransparentcolor: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
2785 fn InitializeFromPalette(&self, pipalette: ::core::option::Option<&IWICPalette>) -> ::windows::core::Result<()>;
2786 fn GetType(&self) -> ::windows::core::Result<WICBitmapPaletteType>;
2787 fn GetColorCount(&self) -> ::windows::core::Result<u32>;
2788 fn GetColors(&self, ccount: u32, pcolors: *mut u32, pcactualcolors: *mut u32) -> ::windows::core::Result<()>;
2789 fn IsBlackWhite(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2790 fn IsGrayscale(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2791 fn HasAlpha(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
2792}
2793#[cfg(feature = "Win32_Foundation")]
2794impl ::windows::core::RuntimeName for IWICPalette {}
2795#[cfg(feature = "Win32_Foundation")]
2796impl IWICPalette_Vtbl {
2797 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>() -> IWICPalette_Vtbl {
2798 unsafe extern "system" fn InitializePredefined<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, epalettetype: WICBitmapPaletteType, faddtransparentcolor: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2799 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2800 let this = (*this).get_impl();
2801 this.InitializePredefined(::core::mem::transmute_copy(&epalettetype), ::core::mem::transmute_copy(&faddtransparentcolor)).into()
2802 }
2803 unsafe extern "system" fn InitializeCustom<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolors: *const u32, ccount: u32) -> ::windows::core::HRESULT {
2804 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2805 let this = (*this).get_impl();
2806 this.InitializeCustom(::core::mem::transmute_copy(&pcolors), ::core::mem::transmute_copy(&ccount)).into()
2807 }
2808 unsafe extern "system" fn InitializeFromBitmap<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisurface: *mut ::core::ffi::c_void, ccount: u32, faddtransparentcolor: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2809 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2810 let this = (*this).get_impl();
2811 this.InitializeFromBitmap(::windows::core::from_raw_borrowed(&pisurface), ::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&faddtransparentcolor)).into()
2812 }
2813 unsafe extern "system" fn InitializeFromPalette<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipalette: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2814 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2815 let this = (*this).get_impl();
2816 this.InitializeFromPalette(::windows::core::from_raw_borrowed(&pipalette)).into()
2817 }
2818 unsafe extern "system" fn GetType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pepalettetype: *mut WICBitmapPaletteType) -> ::windows::core::HRESULT {
2819 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2820 let this = (*this).get_impl();
2821 match this.GetType() {
2822 ::core::result::Result::Ok(ok__) => {
2823 ::core::ptr::write(pepalettetype, ::core::mem::transmute(ok__));
2824 ::windows::core::HRESULT(0)
2825 }
2826 ::core::result::Result::Err(err) => err.into(),
2827 }
2828 }
2829 unsafe extern "system" fn GetColorCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pccount: *mut u32) -> ::windows::core::HRESULT {
2830 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2831 let this = (*this).get_impl();
2832 match this.GetColorCount() {
2833 ::core::result::Result::Ok(ok__) => {
2834 ::core::ptr::write(pccount, ::core::mem::transmute(ok__));
2835 ::windows::core::HRESULT(0)
2836 }
2837 ::core::result::Result::Err(err) => err.into(),
2838 }
2839 }
2840 unsafe extern "system" fn GetColors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ccount: u32, pcolors: *mut u32, pcactualcolors: *mut u32) -> ::windows::core::HRESULT {
2841 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2842 let this = (*this).get_impl();
2843 this.GetColors(::core::mem::transmute_copy(&ccount), ::core::mem::transmute_copy(&pcolors), ::core::mem::transmute_copy(&pcactualcolors)).into()
2844 }
2845 unsafe extern "system" fn IsBlackWhite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfisblackwhite: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2846 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2847 let this = (*this).get_impl();
2848 match this.IsBlackWhite() {
2849 ::core::result::Result::Ok(ok__) => {
2850 ::core::ptr::write(pfisblackwhite, ::core::mem::transmute(ok__));
2851 ::windows::core::HRESULT(0)
2852 }
2853 ::core::result::Result::Err(err) => err.into(),
2854 }
2855 }
2856 unsafe extern "system" fn IsGrayscale<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfisgrayscale: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2857 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2858 let this = (*this).get_impl();
2859 match this.IsGrayscale() {
2860 ::core::result::Result::Ok(ok__) => {
2861 ::core::ptr::write(pfisgrayscale, ::core::mem::transmute(ok__));
2862 ::windows::core::HRESULT(0)
2863 }
2864 ::core::result::Result::Err(err) => err.into(),
2865 }
2866 }
2867 unsafe extern "system" fn HasAlpha<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPalette_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfhasalpha: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2868 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2869 let this = (*this).get_impl();
2870 match this.HasAlpha() {
2871 ::core::result::Result::Ok(ok__) => {
2872 ::core::ptr::write(pfhasalpha, ::core::mem::transmute(ok__));
2873 ::windows::core::HRESULT(0)
2874 }
2875 ::core::result::Result::Err(err) => err.into(),
2876 }
2877 }
2878 Self {
2879 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2880 InitializePredefined: InitializePredefined::<Identity, Impl, OFFSET>,
2881 InitializeCustom: InitializeCustom::<Identity, Impl, OFFSET>,
2882 InitializeFromBitmap: InitializeFromBitmap::<Identity, Impl, OFFSET>,
2883 InitializeFromPalette: InitializeFromPalette::<Identity, Impl, OFFSET>,
2884 GetType: GetType::<Identity, Impl, OFFSET>,
2885 GetColorCount: GetColorCount::<Identity, Impl, OFFSET>,
2886 GetColors: GetColors::<Identity, Impl, OFFSET>,
2887 IsBlackWhite: IsBlackWhite::<Identity, Impl, OFFSET>,
2888 IsGrayscale: IsGrayscale::<Identity, Impl, OFFSET>,
2889 HasAlpha: HasAlpha::<Identity, Impl, OFFSET>,
2890 }
2891 }
2892 pub fn matches(iid: &windows::core::GUID) -> bool {
2893 iid == &<IWICPalette as ::windows::core::ComInterface>::IID
2894 }
2895}
2896#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2897#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2898pub trait IWICPersistStream_Impl: Sized + super::super::System::Com::IPersistStream_Impl {
2899 fn LoadEx(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, pguidpreferredvendor: *const ::windows::core::GUID, dwpersistoptions: u32) -> ::windows::core::Result<()>;
2900 fn SaveEx(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, dwpersistoptions: u32, fcleardirty: super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
2901}
2902#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2903impl ::windows::core::RuntimeName for IWICPersistStream {}
2904#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
2905impl IWICPersistStream_Vtbl {
2906 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPersistStream_Impl, const OFFSET: isize>() -> IWICPersistStream_Vtbl {
2907 unsafe extern "system" fn LoadEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPersistStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, pguidpreferredvendor: *const ::windows::core::GUID, dwpersistoptions: u32) -> ::windows::core::HRESULT {
2908 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2909 let this = (*this).get_impl();
2910 this.LoadEx(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&pguidpreferredvendor), ::core::mem::transmute_copy(&dwpersistoptions)).into()
2911 }
2912 unsafe extern "system" fn SaveEx<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPersistStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, dwpersistoptions: u32, fcleardirty: super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
2913 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2914 let this = (*this).get_impl();
2915 this.SaveEx(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&dwpersistoptions), ::core::mem::transmute_copy(&fcleardirty)).into()
2916 }
2917 Self {
2918 base__: super::super::System::Com::IPersistStream_Vtbl::new::<Identity, Impl, OFFSET>(),
2919 LoadEx: LoadEx::<Identity, Impl, OFFSET>,
2920 SaveEx: SaveEx::<Identity, Impl, OFFSET>,
2921 }
2922 }
2923 pub fn matches(iid: &windows::core::GUID) -> bool {
2924 iid == &<IWICPersistStream as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IPersistStream as ::windows::core::ComInterface>::IID
2925 }
2926}
2927#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
2928pub trait IWICPixelFormatInfo_Impl: Sized + IWICComponentInfo_Impl {
2929 fn GetFormatGUID(&self) -> ::windows::core::Result<::windows::core::GUID>;
2930 fn GetColorContext(&self) -> ::windows::core::Result<IWICColorContext>;
2931 fn GetBitsPerPixel(&self) -> ::windows::core::Result<u32>;
2932 fn GetChannelCount(&self) -> ::windows::core::Result<u32>;
2933 fn GetChannelMask(&self, uichannelindex: u32, cbmaskbuffer: u32, pbmaskbuffer: *mut u8, pcbactual: *mut u32) -> ::windows::core::Result<()>;
2934}
2935impl ::windows::core::RuntimeName for IWICPixelFormatInfo {}
2936impl IWICPixelFormatInfo_Vtbl {
2937 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>() -> IWICPixelFormatInfo_Vtbl {
2938 unsafe extern "system" fn GetFormatGUID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
2939 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2940 let this = (*this).get_impl();
2941 match this.GetFormatGUID() {
2942 ::core::result::Result::Ok(ok__) => {
2943 ::core::ptr::write(pformat, ::core::mem::transmute(ok__));
2944 ::windows::core::HRESULT(0)
2945 }
2946 ::core::result::Result::Err(err) => err.into(),
2947 }
2948 }
2949 unsafe extern "system" fn GetColorContext<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppicolorcontext: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2950 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2951 let this = (*this).get_impl();
2952 match this.GetColorContext() {
2953 ::core::result::Result::Ok(ok__) => {
2954 ::core::ptr::write(ppicolorcontext, ::core::mem::transmute(ok__));
2955 ::windows::core::HRESULT(0)
2956 }
2957 ::core::result::Result::Err(err) => err.into(),
2958 }
2959 }
2960 unsafe extern "system" fn GetBitsPerPixel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puibitsperpixel: *mut u32) -> ::windows::core::HRESULT {
2961 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2962 let this = (*this).get_impl();
2963 match this.GetBitsPerPixel() {
2964 ::core::result::Result::Ok(ok__) => {
2965 ::core::ptr::write(puibitsperpixel, ::core::mem::transmute(ok__));
2966 ::windows::core::HRESULT(0)
2967 }
2968 ::core::result::Result::Err(err) => err.into(),
2969 }
2970 }
2971 unsafe extern "system" fn GetChannelCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puichannelcount: *mut u32) -> ::windows::core::HRESULT {
2972 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2973 let this = (*this).get_impl();
2974 match this.GetChannelCount() {
2975 ::core::result::Result::Ok(ok__) => {
2976 ::core::ptr::write(puichannelcount, ::core::mem::transmute(ok__));
2977 ::windows::core::HRESULT(0)
2978 }
2979 ::core::result::Result::Err(err) => err.into(),
2980 }
2981 }
2982 unsafe extern "system" fn GetChannelMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uichannelindex: u32, cbmaskbuffer: u32, pbmaskbuffer: *mut u8, pcbactual: *mut u32) -> ::windows::core::HRESULT {
2983 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2984 let this = (*this).get_impl();
2985 this.GetChannelMask(::core::mem::transmute_copy(&uichannelindex), ::core::mem::transmute_copy(&cbmaskbuffer), ::core::mem::transmute_copy(&pbmaskbuffer), ::core::mem::transmute_copy(&pcbactual)).into()
2986 }
2987 Self {
2988 base__: IWICComponentInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
2989 GetFormatGUID: GetFormatGUID::<Identity, Impl, OFFSET>,
2990 GetColorContext: GetColorContext::<Identity, Impl, OFFSET>,
2991 GetBitsPerPixel: GetBitsPerPixel::<Identity, Impl, OFFSET>,
2992 GetChannelCount: GetChannelCount::<Identity, Impl, OFFSET>,
2993 GetChannelMask: GetChannelMask::<Identity, Impl, OFFSET>,
2994 }
2995 }
2996 pub fn matches(iid: &windows::core::GUID) -> bool {
2997 iid == &<IWICPixelFormatInfo as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID
2998 }
2999}
3000#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
3001#[cfg(feature = "Win32_Foundation")]
3002pub trait IWICPixelFormatInfo2_Impl: Sized + IWICPixelFormatInfo_Impl {
3003 fn SupportsTransparency(&self) -> ::windows::core::Result<super::super::Foundation::BOOL>;
3004 fn GetNumericRepresentation(&self) -> ::windows::core::Result<WICPixelFormatNumericRepresentation>;
3005}
3006#[cfg(feature = "Win32_Foundation")]
3007impl ::windows::core::RuntimeName for IWICPixelFormatInfo2 {}
3008#[cfg(feature = "Win32_Foundation")]
3009impl IWICPixelFormatInfo2_Vtbl {
3010 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo2_Impl, const OFFSET: isize>() -> IWICPixelFormatInfo2_Vtbl {
3011 unsafe extern "system" fn SupportsTransparency<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfsupportstransparency: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
3012 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3013 let this = (*this).get_impl();
3014 match this.SupportsTransparency() {
3015 ::core::result::Result::Ok(ok__) => {
3016 ::core::ptr::write(pfsupportstransparency, ::core::mem::transmute(ok__));
3017 ::windows::core::HRESULT(0)
3018 }
3019 ::core::result::Result::Err(err) => err.into(),
3020 }
3021 }
3022 unsafe extern "system" fn GetNumericRepresentation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPixelFormatInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnumericrepresentation: *mut WICPixelFormatNumericRepresentation) -> ::windows::core::HRESULT {
3023 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3024 let this = (*this).get_impl();
3025 match this.GetNumericRepresentation() {
3026 ::core::result::Result::Ok(ok__) => {
3027 ::core::ptr::write(pnumericrepresentation, ::core::mem::transmute(ok__));
3028 ::windows::core::HRESULT(0)
3029 }
3030 ::core::result::Result::Err(err) => err.into(),
3031 }
3032 }
3033 Self {
3034 base__: IWICPixelFormatInfo_Vtbl::new::<Identity, Impl, OFFSET>(),
3035 SupportsTransparency: SupportsTransparency::<Identity, Impl, OFFSET>,
3036 GetNumericRepresentation: GetNumericRepresentation::<Identity, Impl, OFFSET>,
3037 }
3038 }
3039 pub fn matches(iid: &windows::core::GUID) -> bool {
3040 iid == &<IWICPixelFormatInfo2 as ::windows::core::ComInterface>::IID || iid == &<IWICComponentInfo as ::windows::core::ComInterface>::IID || iid == &<IWICPixelFormatInfo as ::windows::core::ComInterface>::IID
3041 }
3042}
3043#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
3044pub trait IWICPlanarBitmapFrameEncode_Impl: Sized {
3045 fn WritePixels(&self, linecount: u32, pplanes: *const WICBitmapPlane, cplanes: u32) -> ::windows::core::Result<()>;
3046 fn WriteSource(&self, ppplanes: *const ::core::option::Option<IWICBitmapSource>, cplanes: u32, prcsource: *const WICRect) -> ::windows::core::Result<()>;
3047}
3048impl ::windows::core::RuntimeName for IWICPlanarBitmapFrameEncode {}
3049impl IWICPlanarBitmapFrameEncode_Vtbl {
3050 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapFrameEncode_Impl, const OFFSET: isize>() -> IWICPlanarBitmapFrameEncode_Vtbl {
3051 unsafe extern "system" fn WritePixels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, linecount: u32, pplanes: *const WICBitmapPlane, cplanes: u32) -> ::windows::core::HRESULT {
3052 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3053 let this = (*this).get_impl();
3054 this.WritePixels(::core::mem::transmute_copy(&linecount), ::core::mem::transmute_copy(&pplanes), ::core::mem::transmute_copy(&cplanes)).into()
3055 }
3056 unsafe extern "system" fn WriteSource<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapFrameEncode_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppplanes: *const *mut ::core::ffi::c_void, cplanes: u32, prcsource: *const WICRect) -> ::windows::core::HRESULT {
3057 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3058 let this = (*this).get_impl();
3059 this.WriteSource(::core::mem::transmute_copy(&ppplanes), ::core::mem::transmute_copy(&cplanes), ::core::mem::transmute_copy(&prcsource)).into()
3060 }
3061 Self {
3062 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3063 WritePixels: WritePixels::<Identity, Impl, OFFSET>,
3064 WriteSource: WriteSource::<Identity, Impl, OFFSET>,
3065 }
3066 }
3067 pub fn matches(iid: &windows::core::GUID) -> bool {
3068 iid == &<IWICPlanarBitmapFrameEncode as ::windows::core::ComInterface>::IID
3069 }
3070}
3071#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
3072#[cfg(feature = "Win32_Foundation")]
3073pub trait IWICPlanarBitmapSourceTransform_Impl: Sized {
3074 fn DoesSupportTransform(&self, puiwidth: *mut u32, puiheight: *mut u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pguiddstformats: *const ::windows::core::GUID, pplanedescriptions: *mut WICBitmapPlaneDescription, cplanes: u32, pfissupported: *mut super::super::Foundation::BOOL) -> ::windows::core::Result<()>;
3075 fn CopyPixels(&self, prcsource: *const WICRect, uiwidth: u32, uiheight: u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pdstplanes: *const WICBitmapPlane, cplanes: u32) -> ::windows::core::Result<()>;
3076}
3077#[cfg(feature = "Win32_Foundation")]
3078impl ::windows::core::RuntimeName for IWICPlanarBitmapSourceTransform {}
3079#[cfg(feature = "Win32_Foundation")]
3080impl IWICPlanarBitmapSourceTransform_Vtbl {
3081 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapSourceTransform_Impl, const OFFSET: isize>() -> IWICPlanarBitmapSourceTransform_Vtbl {
3082 unsafe extern "system" fn DoesSupportTransform<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puiwidth: *mut u32, puiheight: *mut u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pguiddstformats: *const ::windows::core::GUID, pplanedescriptions: *mut WICBitmapPlaneDescription, cplanes: u32, pfissupported: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
3083 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3084 let this = (*this).get_impl();
3085 this.DoesSupportTransform(::core::mem::transmute_copy(&puiwidth), ::core::mem::transmute_copy(&puiheight), ::core::mem::transmute_copy(&dsttransform), ::core::mem::transmute_copy(&dstplanaroptions), ::core::mem::transmute_copy(&pguiddstformats), ::core::mem::transmute_copy(&pplanedescriptions), ::core::mem::transmute_copy(&cplanes), ::core::mem::transmute_copy(&pfissupported)).into()
3086 }
3087 unsafe extern "system" fn CopyPixels<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarBitmapSourceTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcsource: *const WICRect, uiwidth: u32, uiheight: u32, dsttransform: WICBitmapTransformOptions, dstplanaroptions: WICPlanarOptions, pdstplanes: *const WICBitmapPlane, cplanes: u32) -> ::windows::core::HRESULT {
3088 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3089 let this = (*this).get_impl();
3090 this.CopyPixels(::core::mem::transmute_copy(&prcsource), ::core::mem::transmute_copy(&uiwidth), ::core::mem::transmute_copy(&uiheight), ::core::mem::transmute_copy(&dsttransform), ::core::mem::transmute_copy(&dstplanaroptions), ::core::mem::transmute_copy(&pdstplanes), ::core::mem::transmute_copy(&cplanes)).into()
3091 }
3092 Self {
3093 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3094 DoesSupportTransform: DoesSupportTransform::<Identity, Impl, OFFSET>,
3095 CopyPixels: CopyPixels::<Identity, Impl, OFFSET>,
3096 }
3097 }
3098 pub fn matches(iid: &windows::core::GUID) -> bool {
3099 iid == &<IWICPlanarBitmapSourceTransform as ::windows::core::ComInterface>::IID
3100 }
3101}
3102#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
3103#[cfg(feature = "Win32_Foundation")]
3104pub trait IWICPlanarFormatConverter_Impl: Sized + IWICBitmapSource_Impl {
3105 fn Initialize(&self, ppplanes: *const ::core::option::Option<IWICBitmapSource>, cplanes: u32, dstformat: *const ::windows::core::GUID, dither: WICBitmapDitherType, pipalette: ::core::option::Option<&IWICPalette>, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::Result<()>;
3106 fn CanConvert(&self, psrcpixelformats: *const ::windows::core::GUID, csrcplanes: u32, dstpixelformat: *const ::windows::core::GUID) -> ::windows::core::Result<super::super::Foundation::BOOL>;
3107}
3108#[cfg(feature = "Win32_Foundation")]
3109impl ::windows::core::RuntimeName for IWICPlanarFormatConverter {}
3110#[cfg(feature = "Win32_Foundation")]
3111impl IWICPlanarFormatConverter_Vtbl {
3112 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarFormatConverter_Impl, const OFFSET: isize>() -> IWICPlanarFormatConverter_Vtbl {
3113 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarFormatConverter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppplanes: *const *mut ::core::ffi::c_void, cplanes: u32, dstformat: *const ::windows::core::GUID, dither: WICBitmapDitherType, pipalette: *mut ::core::ffi::c_void, alphathresholdpercent: f64, palettetranslate: WICBitmapPaletteType) -> ::windows::core::HRESULT {
3114 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3115 let this = (*this).get_impl();
3116 this.Initialize(::core::mem::transmute_copy(&ppplanes), ::core::mem::transmute_copy(&cplanes), ::core::mem::transmute_copy(&dstformat), ::core::mem::transmute_copy(&dither), ::windows::core::from_raw_borrowed(&pipalette), ::core::mem::transmute_copy(&alphathresholdpercent), ::core::mem::transmute_copy(&palettetranslate)).into()
3117 }
3118 unsafe extern "system" fn CanConvert<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICPlanarFormatConverter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psrcpixelformats: *const ::windows::core::GUID, csrcplanes: u32, dstpixelformat: *const ::windows::core::GUID, pfcanconvert: *mut super::super::Foundation::BOOL) -> ::windows::core::HRESULT {
3119 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3120 let this = (*this).get_impl();
3121 match this.CanConvert(::core::mem::transmute_copy(&psrcpixelformats), ::core::mem::transmute_copy(&csrcplanes), ::core::mem::transmute_copy(&dstpixelformat)) {
3122 ::core::result::Result::Ok(ok__) => {
3123 ::core::ptr::write(pfcanconvert, ::core::mem::transmute(ok__));
3124 ::windows::core::HRESULT(0)
3125 }
3126 ::core::result::Result::Err(err) => err.into(),
3127 }
3128 }
3129 Self {
3130 base__: IWICBitmapSource_Vtbl::new::<Identity, Impl, OFFSET>(),
3131 Initialize: Initialize::<Identity, Impl, OFFSET>,
3132 CanConvert: CanConvert::<Identity, Impl, OFFSET>,
3133 }
3134 }
3135 pub fn matches(iid: &windows::core::GUID) -> bool {
3136 iid == &<IWICPlanarFormatConverter as ::windows::core::ComInterface>::IID || iid == &<IWICBitmapSource as ::windows::core::ComInterface>::IID
3137 }
3138}
3139#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
3140pub trait IWICProgressCallback_Impl: Sized {
3141 fn Notify(&self, uframenum: u32, operation: WICProgressOperation, dblprogress: f64) -> ::windows::core::Result<()>;
3142}
3143impl ::windows::core::RuntimeName for IWICProgressCallback {}
3144impl IWICProgressCallback_Vtbl {
3145 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressCallback_Impl, const OFFSET: isize>() -> IWICProgressCallback_Vtbl {
3146 unsafe extern "system" fn Notify<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uframenum: u32, operation: WICProgressOperation, dblprogress: f64) -> ::windows::core::HRESULT {
3147 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3148 let this = (*this).get_impl();
3149 this.Notify(::core::mem::transmute_copy(&uframenum), ::core::mem::transmute_copy(&operation), ::core::mem::transmute_copy(&dblprogress)).into()
3150 }
3151 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Notify: Notify::<Identity, Impl, OFFSET> }
3152 }
3153 pub fn matches(iid: &windows::core::GUID) -> bool {
3154 iid == &<IWICProgressCallback as ::windows::core::ComInterface>::IID
3155 }
3156}
3157#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"implement\"`*"]
3158pub trait IWICProgressiveLevelControl_Impl: Sized {
3159 fn GetLevelCount(&self) -> ::windows::core::Result<u32>;
3160 fn GetCurrentLevel(&self) -> ::windows::core::Result<u32>;
3161 fn SetCurrentLevel(&self, nlevel: u32) -> ::windows::core::Result<()>;
3162}
3163impl ::windows::core::RuntimeName for IWICProgressiveLevelControl {}
3164impl IWICProgressiveLevelControl_Vtbl {
3165 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressiveLevelControl_Impl, const OFFSET: isize>() -> IWICProgressiveLevelControl_Vtbl {
3166 unsafe extern "system" fn GetLevelCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressiveLevelControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclevels: *mut u32) -> ::windows::core::HRESULT {
3167 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3168 let this = (*this).get_impl();
3169 match this.GetLevelCount() {
3170 ::core::result::Result::Ok(ok__) => {
3171 ::core::ptr::write(pclevels, ::core::mem::transmute(ok__));
3172 ::windows::core::HRESULT(0)
3173 }
3174 ::core::result::Result::Err(err) => err.into(),
3175 }
3176 }
3177 unsafe extern "system" fn GetCurrentLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressiveLevelControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnlevel: *mut u32) -> ::windows::core::HRESULT {
3178 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3179 let this = (*this).get_impl();
3180 match this.GetCurrentLevel() {
3181 ::core::result::Result::Ok(ok__) => {
3182 ::core::ptr::write(pnlevel, ::core::mem::transmute(ok__));
3183 ::windows::core::HRESULT(0)
3184 }
3185 ::core::result::Result::Err(err) => err.into(),
3186 }
3187 }
3188 unsafe extern "system" fn SetCurrentLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICProgressiveLevelControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nlevel: u32) -> ::windows::core::HRESULT {
3189 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3190 let this = (*this).get_impl();
3191 this.SetCurrentLevel(::core::mem::transmute_copy(&nlevel)).into()
3192 }
3193 Self {
3194 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3195 GetLevelCount: GetLevelCount::<Identity, Impl, OFFSET>,
3196 GetCurrentLevel: GetCurrentLevel::<Identity, Impl, OFFSET>,
3197 SetCurrentLevel: SetCurrentLevel::<Identity, Impl, OFFSET>,
3198 }
3199 }
3200 pub fn matches(iid: &windows::core::GUID) -> bool {
3201 iid == &<IWICProgressiveLevelControl as ::windows::core::ComInterface>::IID
3202 }
3203}
3204#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
3205#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
3206pub trait IWICStream_Impl: Sized + super::super::System::Com::IStream_Impl {
3207 fn InitializeFromIStream(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
3208 fn InitializeFromFilename(&self, wzfilename: &::windows::core::PCWSTR, dwdesiredaccess: u32) -> ::windows::core::Result<()>;
3209 fn InitializeFromMemory(&self, pbbuffer: *const u8, cbbuffersize: u32) -> ::windows::core::Result<()>;
3210 fn InitializeFromIStreamRegion(&self, pistream: ::core::option::Option<&super::super::System::Com::IStream>, uloffset: u64, ulmaxsize: u64) -> ::windows::core::Result<()>;
3211}
3212#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
3213impl ::windows::core::RuntimeName for IWICStream {}
3214#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
3215impl IWICStream_Vtbl {
3216 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStream_Impl, const OFFSET: isize>() -> IWICStream_Vtbl {
3217 unsafe extern "system" fn InitializeFromIStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3218 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3219 let this = (*this).get_impl();
3220 this.InitializeFromIStream(::windows::core::from_raw_borrowed(&pistream)).into()
3221 }
3222 unsafe extern "system" fn InitializeFromFilename<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wzfilename: ::windows::core::PCWSTR, dwdesiredaccess: u32) -> ::windows::core::HRESULT {
3223 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3224 let this = (*this).get_impl();
3225 this.InitializeFromFilename(::core::mem::transmute(&wzfilename), ::core::mem::transmute_copy(&dwdesiredaccess)).into()
3226 }
3227 unsafe extern "system" fn InitializeFromMemory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbbuffer: *const u8, cbbuffersize: u32) -> ::windows::core::HRESULT {
3228 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3229 let this = (*this).get_impl();
3230 this.InitializeFromMemory(::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&cbbuffersize)).into()
3231 }
3232 unsafe extern "system" fn InitializeFromIStreamRegion<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pistream: *mut ::core::ffi::c_void, uloffset: u64, ulmaxsize: u64) -> ::windows::core::HRESULT {
3233 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3234 let this = (*this).get_impl();
3235 this.InitializeFromIStreamRegion(::windows::core::from_raw_borrowed(&pistream), ::core::mem::transmute_copy(&uloffset), ::core::mem::transmute_copy(&ulmaxsize)).into()
3236 }
3237 Self {
3238 base__: super::super::System::Com::IStream_Vtbl::new::<Identity, Impl, OFFSET>(),
3239 InitializeFromIStream: InitializeFromIStream::<Identity, Impl, OFFSET>,
3240 InitializeFromFilename: InitializeFromFilename::<Identity, Impl, OFFSET>,
3241 InitializeFromMemory: InitializeFromMemory::<Identity, Impl, OFFSET>,
3242 InitializeFromIStreamRegion: InitializeFromIStreamRegion::<Identity, Impl, OFFSET>,
3243 }
3244 }
3245 pub fn matches(iid: &windows::core::GUID) -> bool {
3246 iid == &<IWICStream as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::ISequentialStream as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IStream as ::windows::core::ComInterface>::IID
3247 }
3248}
3249#[doc = "*Required features: `\"Win32_Graphics_Imaging\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
3250#[cfg(feature = "Win32_System_Com")]
3251pub trait IWICStreamProvider_Impl: Sized {
3252 fn GetStream(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
3253 fn GetPersistOptions(&self) -> ::windows::core::Result<u32>;
3254 fn GetPreferredVendorGUID(&self) -> ::windows::core::Result<::windows::core::GUID>;
3255 fn RefreshStream(&self) -> ::windows::core::Result<()>;
3256}
3257#[cfg(feature = "Win32_System_Com")]
3258impl ::windows::core::RuntimeName for IWICStreamProvider {}
3259#[cfg(feature = "Win32_System_Com")]
3260impl IWICStreamProvider_Vtbl {
3261 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStreamProvider_Impl, const OFFSET: isize>() -> IWICStreamProvider_Vtbl {
3262 unsafe extern "system" fn GetStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStreamProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppistream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3263 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3264 let this = (*this).get_impl();
3265 match this.GetStream() {
3266 ::core::result::Result::Ok(ok__) => {
3267 ::core::ptr::write(ppistream, ::core::mem::transmute(ok__));
3268 ::windows::core::HRESULT(0)
3269 }
3270 ::core::result::Result::Err(err) => err.into(),
3271 }
3272 }
3273 unsafe extern "system" fn GetPersistOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStreamProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwpersistoptions: *mut u32) -> ::windows::core::HRESULT {
3274 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3275 let this = (*this).get_impl();
3276 match this.GetPersistOptions() {
3277 ::core::result::Result::Ok(ok__) => {
3278 ::core::ptr::write(pdwpersistoptions, ::core::mem::transmute(ok__));
3279 ::windows::core::HRESULT(0)
3280 }
3281 ::core::result::Result::Err(err) => err.into(),
3282 }
3283 }
3284 unsafe extern "system" fn GetPreferredVendorGUID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStreamProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidpreferredvendor: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
3285 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3286 let this = (*this).get_impl();
3287 match this.GetPreferredVendorGUID() {
3288 ::core::result::Result::Ok(ok__) => {
3289 ::core::ptr::write(pguidpreferredvendor, ::core::mem::transmute(ok__));
3290 ::windows::core::HRESULT(0)
3291 }
3292 ::core::result::Result::Err(err) => err.into(),
3293 }
3294 }
3295 unsafe extern "system" fn RefreshStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWICStreamProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3296 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3297 let this = (*this).get_impl();
3298 this.RefreshStream().into()
3299 }
3300 Self {
3301 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
3302 GetStream: GetStream::<Identity, Impl, OFFSET>,
3303 GetPersistOptions: GetPersistOptions::<Identity, Impl, OFFSET>,
3304 GetPreferredVendorGUID: GetPreferredVendorGUID::<Identity, Impl, OFFSET>,
3305 RefreshStream: RefreshStream::<Identity, Impl, OFFSET>,
3306 }
3307 }
3308 pub fn matches(iid: &windows::core::GUID) -> bool {
3309 iid == &<IWICStreamProvider as ::windows::core::ComInterface>::IID
3310 }
3311}