]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/Storage/Imapi/impl.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / Storage / Imapi / impl.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
2#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3pub trait DDiscFormat2DataEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, progress: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows::core::Result<()>;
5}
6#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
7impl ::windows::core::RuntimeName for DDiscFormat2DataEvents {}
8#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
9impl DDiscFormat2DataEvents_Vtbl {
10 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2DataEvents_Impl, const OFFSET: isize>() -> DDiscFormat2DataEvents_Vtbl {
11 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2DataEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, progress: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
12 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
13 let this = (*this).get_impl();
14 this.Update(::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&progress)).into()
15 }
16 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
17 }
18 pub fn matches(iid: &windows::core::GUID) -> bool {
19 iid == &<DDiscFormat2DataEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
20 }
21}
22#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
23#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
24pub trait DDiscFormat2EraseEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
25 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, elapsedseconds: i32, estimatedtotalseconds: i32) -> ::windows::core::Result<()>;
26}
27#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
28impl ::windows::core::RuntimeName for DDiscFormat2EraseEvents {}
29#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
30impl DDiscFormat2EraseEvents_Vtbl {
31 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2EraseEvents_Impl, const OFFSET: isize>() -> DDiscFormat2EraseEvents_Vtbl {
32 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2EraseEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, elapsedseconds: i32, estimatedtotalseconds: i32) -> ::windows::core::HRESULT {
33 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
34 let this = (*this).get_impl();
35 this.Update(::windows::core::from_raw_borrowed(&object), ::core::mem::transmute_copy(&elapsedseconds), ::core::mem::transmute_copy(&estimatedtotalseconds)).into()
36 }
37 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
38 }
39 pub fn matches(iid: &windows::core::GUID) -> bool {
40 iid == &<DDiscFormat2EraseEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
41 }
42}
43#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
44#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
45pub trait DDiscFormat2RawCDEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
46 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, progress: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows::core::Result<()>;
47}
48#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
49impl ::windows::core::RuntimeName for DDiscFormat2RawCDEvents {}
50#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
51impl DDiscFormat2RawCDEvents_Vtbl {
52 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2RawCDEvents_Impl, const OFFSET: isize>() -> DDiscFormat2RawCDEvents_Vtbl {
53 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2RawCDEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, progress: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
54 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
55 let this = (*this).get_impl();
56 this.Update(::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&progress)).into()
57 }
58 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
59 }
60 pub fn matches(iid: &windows::core::GUID) -> bool {
61 iid == &<DDiscFormat2RawCDEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
62 }
63}
64#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
65#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
66pub trait DDiscFormat2TrackAtOnceEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
67 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, progress: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows::core::Result<()>;
68}
69#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
70impl ::windows::core::RuntimeName for DDiscFormat2TrackAtOnceEvents {}
71#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
72impl DDiscFormat2TrackAtOnceEvents_Vtbl {
73 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2TrackAtOnceEvents_Impl, const OFFSET: isize>() -> DDiscFormat2TrackAtOnceEvents_Vtbl {
74 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscFormat2TrackAtOnceEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, progress: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
75 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
76 let this = (*this).get_impl();
77 this.Update(::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&progress)).into()
78 }
79 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
80 }
81 pub fn matches(iid: &windows::core::GUID) -> bool {
82 iid == &<DDiscFormat2TrackAtOnceEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
83 }
84}
85#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
86#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
87pub trait DDiscMaster2Events_Impl: Sized + super::super::System::Com::IDispatch_Impl {
88 fn NotifyDeviceAdded(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, uniqueid: &::windows::core::BSTR) -> ::windows::core::Result<()>;
89 fn NotifyDeviceRemoved(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, uniqueid: &::windows::core::BSTR) -> ::windows::core::Result<()>;
90}
91#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
92impl ::windows::core::RuntimeName for DDiscMaster2Events {}
93#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
94impl DDiscMaster2Events_Vtbl {
95 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscMaster2Events_Impl, const OFFSET: isize>() -> DDiscMaster2Events_Vtbl {
96 unsafe extern "system" fn NotifyDeviceAdded<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscMaster2Events_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, uniqueid: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
97 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
98 let this = (*this).get_impl();
99 this.NotifyDeviceAdded(::windows::core::from_raw_borrowed(&object), ::core::mem::transmute(&uniqueid)).into()
100 }
101 unsafe extern "system" fn NotifyDeviceRemoved<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DDiscMaster2Events_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, uniqueid: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
102 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
103 let this = (*this).get_impl();
104 this.NotifyDeviceRemoved(::windows::core::from_raw_borrowed(&object), ::core::mem::transmute(&uniqueid)).into()
105 }
106 Self {
107 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
108 NotifyDeviceAdded: NotifyDeviceAdded::<Identity, Impl, OFFSET>,
109 NotifyDeviceRemoved: NotifyDeviceRemoved::<Identity, Impl, OFFSET>,
110 }
111 }
112 pub fn matches(iid: &windows::core::GUID) -> bool {
113 iid == &<DDiscMaster2Events as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
114 }
115}
116#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
117#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
118pub trait DFileSystemImageEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
119 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, currentfile: &::windows::core::BSTR, copiedsectors: i32, totalsectors: i32) -> ::windows::core::Result<()>;
120}
121#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
122impl ::windows::core::RuntimeName for DFileSystemImageEvents {}
123#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
124impl DFileSystemImageEvents_Vtbl {
125 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DFileSystemImageEvents_Impl, const OFFSET: isize>() -> DFileSystemImageEvents_Vtbl {
126 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DFileSystemImageEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, currentfile: ::std::mem::MaybeUninit<::windows::core::BSTR>, copiedsectors: i32, totalsectors: i32) -> ::windows::core::HRESULT {
127 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
128 let this = (*this).get_impl();
129 this.Update(::windows::core::from_raw_borrowed(&object), ::core::mem::transmute(&currentfile), ::core::mem::transmute_copy(&copiedsectors), ::core::mem::transmute_copy(&totalsectors)).into()
130 }
131 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
132 }
133 pub fn matches(iid: &windows::core::GUID) -> bool {
134 iid == &<DFileSystemImageEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
135 }
136}
137#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
138#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
139pub trait DFileSystemImageImportEvents_Impl: Sized + super::super::System::Com::IDispatch_Impl {
140 fn UpdateImport(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, filesystem: FsiFileSystems, currentitem: &::windows::core::BSTR, importeddirectoryitems: i32, totaldirectoryitems: i32, importedfileitems: i32, totalfileitems: i32) -> ::windows::core::Result<()>;
141}
142#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
143impl ::windows::core::RuntimeName for DFileSystemImageImportEvents {}
144#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
145impl DFileSystemImageImportEvents_Vtbl {
146 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DFileSystemImageImportEvents_Impl, const OFFSET: isize>() -> DFileSystemImageImportEvents_Vtbl {
147 unsafe extern "system" fn UpdateImport<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DFileSystemImageImportEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, filesystem: FsiFileSystems, currentitem: ::std::mem::MaybeUninit<::windows::core::BSTR>, importeddirectoryitems: i32, totaldirectoryitems: i32, importedfileitems: i32, totalfileitems: i32) -> ::windows::core::HRESULT {
148 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
149 let this = (*this).get_impl();
150 this.UpdateImport(::windows::core::from_raw_borrowed(&object), ::core::mem::transmute_copy(&filesystem), ::core::mem::transmute(&currentitem), ::core::mem::transmute_copy(&importeddirectoryitems), ::core::mem::transmute_copy(&totaldirectoryitems), ::core::mem::transmute_copy(&importedfileitems), ::core::mem::transmute_copy(&totalfileitems)).into()
151 }
152 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), UpdateImport: UpdateImport::<Identity, Impl, OFFSET> }
153 }
154 pub fn matches(iid: &windows::core::GUID) -> bool {
155 iid == &<DFileSystemImageImportEvents as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
156 }
157}
158#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
159#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
160pub trait DWriteEngine2Events_Impl: Sized + super::super::System::Com::IDispatch_Impl {
161 fn Update(&self, object: ::core::option::Option<&super::super::System::Com::IDispatch>, progress: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows::core::Result<()>;
162}
163#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
164impl ::windows::core::RuntimeName for DWriteEngine2Events {}
165#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
166impl DWriteEngine2Events_Vtbl {
167 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DWriteEngine2Events_Impl, const OFFSET: isize>() -> DWriteEngine2Events_Vtbl {
168 unsafe extern "system" fn Update<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: DWriteEngine2Events_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, object: *mut ::core::ffi::c_void, progress: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
169 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
170 let this = (*this).get_impl();
171 this.Update(::windows::core::from_raw_borrowed(&object), ::windows::core::from_raw_borrowed(&progress)).into()
172 }
173 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), Update: Update::<Identity, Impl, OFFSET> }
174 }
175 pub fn matches(iid: &windows::core::GUID) -> bool {
176 iid == &<DWriteEngine2Events as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
177 }
178}
179#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
180#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
181pub trait IBlockRange_Impl: Sized + super::super::System::Com::IDispatch_Impl {
182 fn StartLba(&self) -> ::windows::core::Result<i32>;
183 fn EndLba(&self) -> ::windows::core::Result<i32>;
184}
185#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
186impl ::windows::core::RuntimeName for IBlockRange {}
187#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
188impl IBlockRange_Vtbl {
189 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBlockRange_Impl, const OFFSET: isize>() -> IBlockRange_Vtbl {
190 unsafe extern "system" fn StartLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBlockRange_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
191 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
192 let this = (*this).get_impl();
193 match this.StartLba() {
194 ::core::result::Result::Ok(ok__) => {
195 ::core::ptr::write(value, ::core::mem::transmute(ok__));
196 ::windows::core::HRESULT(0)
197 }
198 ::core::result::Result::Err(err) => err.into(),
199 }
200 }
201 unsafe extern "system" fn EndLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBlockRange_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
202 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
203 let this = (*this).get_impl();
204 match this.EndLba() {
205 ::core::result::Result::Ok(ok__) => {
206 ::core::ptr::write(value, ::core::mem::transmute(ok__));
207 ::windows::core::HRESULT(0)
208 }
209 ::core::result::Result::Err(err) => err.into(),
210 }
211 }
212 Self {
213 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
214 StartLba: StartLba::<Identity, Impl, OFFSET>,
215 EndLba: EndLba::<Identity, Impl, OFFSET>,
216 }
217 }
218 pub fn matches(iid: &windows::core::GUID) -> bool {
219 iid == &<IBlockRange as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
220 }
221}
222#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
223#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
224pub trait IBlockRangeList_Impl: Sized + super::super::System::Com::IDispatch_Impl {
225 fn BlockRanges(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
226}
227#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
228impl ::windows::core::RuntimeName for IBlockRangeList {}
229#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
230impl IBlockRangeList_Vtbl {
231 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBlockRangeList_Impl, const OFFSET: isize>() -> IBlockRangeList_Vtbl {
232 unsafe extern "system" fn BlockRanges<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBlockRangeList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
233 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
234 let this = (*this).get_impl();
235 match this.BlockRanges() {
236 ::core::result::Result::Ok(ok__) => {
237 ::core::ptr::write(value, ::core::mem::transmute(ok__));
238 ::windows::core::HRESULT(0)
239 }
240 ::core::result::Result::Err(err) => err.into(),
241 }
242 }
243 Self { base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(), BlockRanges: BlockRanges::<Identity, Impl, OFFSET> }
244 }
245 pub fn matches(iid: &windows::core::GUID) -> bool {
246 iid == &<IBlockRangeList as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
247 }
248}
249#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
250#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
251pub trait IBootOptions_Impl: Sized + super::super::System::Com::IDispatch_Impl {
252 fn BootImage(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
253 fn Manufacturer(&self) -> ::windows::core::Result<::windows::core::BSTR>;
254 fn SetManufacturer(&self, newval: &::windows::core::BSTR) -> ::windows::core::Result<()>;
255 fn PlatformId(&self) -> ::windows::core::Result<PlatformId>;
256 fn SetPlatformId(&self, newval: PlatformId) -> ::windows::core::Result<()>;
257 fn Emulation(&self) -> ::windows::core::Result<EmulationType>;
258 fn SetEmulation(&self, newval: EmulationType) -> ::windows::core::Result<()>;
259 fn ImageSize(&self) -> ::windows::core::Result<u32>;
260 fn AssignBootImage(&self, newval: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
261}
262#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
263impl ::windows::core::RuntimeName for IBootOptions {}
264#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
265impl IBootOptions_Vtbl {
266 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>() -> IBootOptions_Vtbl {
267 unsafe extern "system" fn BootImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
268 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
269 let this = (*this).get_impl();
270 match this.BootImage() {
271 ::core::result::Result::Ok(ok__) => {
272 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
273 ::windows::core::HRESULT(0)
274 }
275 ::core::result::Result::Err(err) => err.into(),
276 }
277 }
278 unsafe extern "system" fn Manufacturer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
279 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
280 let this = (*this).get_impl();
281 match this.Manufacturer() {
282 ::core::result::Result::Ok(ok__) => {
283 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
284 ::windows::core::HRESULT(0)
285 }
286 ::core::result::Result::Err(err) => err.into(),
287 }
288 }
289 unsafe extern "system" fn SetManufacturer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
290 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
291 let this = (*this).get_impl();
292 this.SetManufacturer(::core::mem::transmute(&newval)).into()
293 }
294 unsafe extern "system" fn PlatformId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut PlatformId) -> ::windows::core::HRESULT {
295 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
296 let this = (*this).get_impl();
297 match this.PlatformId() {
298 ::core::result::Result::Ok(ok__) => {
299 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
300 ::windows::core::HRESULT(0)
301 }
302 ::core::result::Result::Err(err) => err.into(),
303 }
304 }
305 unsafe extern "system" fn SetPlatformId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: PlatformId) -> ::windows::core::HRESULT {
306 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
307 let this = (*this).get_impl();
308 this.SetPlatformId(::core::mem::transmute_copy(&newval)).into()
309 }
310 unsafe extern "system" fn Emulation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut EmulationType) -> ::windows::core::HRESULT {
311 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
312 let this = (*this).get_impl();
313 match this.Emulation() {
314 ::core::result::Result::Ok(ok__) => {
315 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
316 ::windows::core::HRESULT(0)
317 }
318 ::core::result::Result::Err(err) => err.into(),
319 }
320 }
321 unsafe extern "system" fn SetEmulation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: EmulationType) -> ::windows::core::HRESULT {
322 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
323 let this = (*this).get_impl();
324 this.SetEmulation(::core::mem::transmute_copy(&newval)).into()
325 }
326 unsafe extern "system" fn ImageSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut u32) -> ::windows::core::HRESULT {
327 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
328 let this = (*this).get_impl();
329 match this.ImageSize() {
330 ::core::result::Result::Ok(ok__) => {
331 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
332 ::windows::core::HRESULT(0)
333 }
334 ::core::result::Result::Err(err) => err.into(),
335 }
336 }
337 unsafe extern "system" fn AssignBootImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBootOptions_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
338 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
339 let this = (*this).get_impl();
340 this.AssignBootImage(::windows::core::from_raw_borrowed(&newval)).into()
341 }
342 Self {
343 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
344 BootImage: BootImage::<Identity, Impl, OFFSET>,
345 Manufacturer: Manufacturer::<Identity, Impl, OFFSET>,
346 SetManufacturer: SetManufacturer::<Identity, Impl, OFFSET>,
347 PlatformId: PlatformId::<Identity, Impl, OFFSET>,
348 SetPlatformId: SetPlatformId::<Identity, Impl, OFFSET>,
349 Emulation: Emulation::<Identity, Impl, OFFSET>,
350 SetEmulation: SetEmulation::<Identity, Impl, OFFSET>,
351 ImageSize: ImageSize::<Identity, Impl, OFFSET>,
352 AssignBootImage: AssignBootImage::<Identity, Impl, OFFSET>,
353 }
354 }
355 pub fn matches(iid: &windows::core::GUID) -> bool {
356 iid == &<IBootOptions as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
357 }
358}
359#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
360pub trait IBurnVerification_Impl: Sized {
361 fn SetBurnVerificationLevel(&self, value: IMAPI_BURN_VERIFICATION_LEVEL) -> ::windows::core::Result<()>;
362 fn BurnVerificationLevel(&self) -> ::windows::core::Result<IMAPI_BURN_VERIFICATION_LEVEL>;
363}
364impl ::windows::core::RuntimeName for IBurnVerification {}
365impl IBurnVerification_Vtbl {
366 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBurnVerification_Impl, const OFFSET: isize>() -> IBurnVerification_Vtbl {
367 unsafe extern "system" fn SetBurnVerificationLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBurnVerification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: IMAPI_BURN_VERIFICATION_LEVEL) -> ::windows::core::HRESULT {
368 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
369 let this = (*this).get_impl();
370 this.SetBurnVerificationLevel(::core::mem::transmute_copy(&value)).into()
371 }
372 unsafe extern "system" fn BurnVerificationLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IBurnVerification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_BURN_VERIFICATION_LEVEL) -> ::windows::core::HRESULT {
373 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
374 let this = (*this).get_impl();
375 match this.BurnVerificationLevel() {
376 ::core::result::Result::Ok(ok__) => {
377 ::core::ptr::write(value, ::core::mem::transmute(ok__));
378 ::windows::core::HRESULT(0)
379 }
380 ::core::result::Result::Err(err) => err.into(),
381 }
382 }
383 Self {
384 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
385 SetBurnVerificationLevel: SetBurnVerificationLevel::<Identity, Impl, OFFSET>,
386 BurnVerificationLevel: BurnVerificationLevel::<Identity, Impl, OFFSET>,
387 }
388 }
389 pub fn matches(iid: &windows::core::GUID) -> bool {
390 iid == &<IBurnVerification as ::windows::core::ComInterface>::IID
391 }
392}
393#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
394#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
395pub trait IDiscFormat2_Impl: Sized + super::super::System::Com::IDispatch_Impl {
396 fn IsRecorderSupported(&self, recorder: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
397 fn IsCurrentMediaSupported(&self, recorder: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
398 fn MediaPhysicallyBlank(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
399 fn MediaHeuristicallyBlank(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
400 fn SupportedMediaTypes(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
401}
402#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
403impl ::windows::core::RuntimeName for IDiscFormat2 {}
404#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
405impl IDiscFormat2_Vtbl {
406 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>() -> IDiscFormat2_Vtbl {
407 unsafe extern "system" fn IsRecorderSupported<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, recorder: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
408 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
409 let this = (*this).get_impl();
410 match this.IsRecorderSupported(::windows::core::from_raw_borrowed(&recorder)) {
411 ::core::result::Result::Ok(ok__) => {
412 ::core::ptr::write(value, ::core::mem::transmute(ok__));
413 ::windows::core::HRESULT(0)
414 }
415 ::core::result::Result::Err(err) => err.into(),
416 }
417 }
418 unsafe extern "system" fn IsCurrentMediaSupported<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, recorder: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
419 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
420 let this = (*this).get_impl();
421 match this.IsCurrentMediaSupported(::windows::core::from_raw_borrowed(&recorder)) {
422 ::core::result::Result::Ok(ok__) => {
423 ::core::ptr::write(value, ::core::mem::transmute(ok__));
424 ::windows::core::HRESULT(0)
425 }
426 ::core::result::Result::Err(err) => err.into(),
427 }
428 }
429 unsafe extern "system" fn MediaPhysicallyBlank<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
430 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
431 let this = (*this).get_impl();
432 match this.MediaPhysicallyBlank() {
433 ::core::result::Result::Ok(ok__) => {
434 ::core::ptr::write(value, ::core::mem::transmute(ok__));
435 ::windows::core::HRESULT(0)
436 }
437 ::core::result::Result::Err(err) => err.into(),
438 }
439 }
440 unsafe extern "system" fn MediaHeuristicallyBlank<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
441 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
442 let this = (*this).get_impl();
443 match this.MediaHeuristicallyBlank() {
444 ::core::result::Result::Ok(ok__) => {
445 ::core::ptr::write(value, ::core::mem::transmute(ok__));
446 ::windows::core::HRESULT(0)
447 }
448 ::core::result::Result::Err(err) => err.into(),
449 }
450 }
451 unsafe extern "system" fn SupportedMediaTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
452 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
453 let this = (*this).get_impl();
454 match this.SupportedMediaTypes() {
455 ::core::result::Result::Ok(ok__) => {
456 ::core::ptr::write(value, ::core::mem::transmute(ok__));
457 ::windows::core::HRESULT(0)
458 }
459 ::core::result::Result::Err(err) => err.into(),
460 }
461 }
462 Self {
463 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
464 IsRecorderSupported: IsRecorderSupported::<Identity, Impl, OFFSET>,
465 IsCurrentMediaSupported: IsCurrentMediaSupported::<Identity, Impl, OFFSET>,
466 MediaPhysicallyBlank: MediaPhysicallyBlank::<Identity, Impl, OFFSET>,
467 MediaHeuristicallyBlank: MediaHeuristicallyBlank::<Identity, Impl, OFFSET>,
468 SupportedMediaTypes: SupportedMediaTypes::<Identity, Impl, OFFSET>,
469 }
470 }
471 pub fn matches(iid: &windows::core::GUID) -> bool {
472 iid == &<IDiscFormat2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
473 }
474}
475#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
476#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
477pub trait IDiscFormat2Data_Impl: Sized + IDiscFormat2_Impl {
478 fn SetRecorder(&self, value: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
479 fn Recorder(&self) -> ::windows::core::Result<IDiscRecorder2>;
480 fn SetBufferUnderrunFreeDisabled(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
481 fn BufferUnderrunFreeDisabled(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
482 fn SetPostgapAlreadyInImage(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
483 fn PostgapAlreadyInImage(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
484 fn CurrentMediaStatus(&self) -> ::windows::core::Result<IMAPI_FORMAT2_DATA_MEDIA_STATE>;
485 fn WriteProtectStatus(&self) -> ::windows::core::Result<IMAPI_MEDIA_WRITE_PROTECT_STATE>;
486 fn TotalSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
487 fn FreeSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
488 fn NextWritableAddress(&self) -> ::windows::core::Result<i32>;
489 fn StartAddressOfPreviousSession(&self) -> ::windows::core::Result<i32>;
490 fn LastWrittenAddressOfPreviousSession(&self) -> ::windows::core::Result<i32>;
491 fn SetForceMediaToBeClosed(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
492 fn ForceMediaToBeClosed(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
493 fn SetDisableConsumerDvdCompatibilityMode(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
494 fn DisableConsumerDvdCompatibilityMode(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
495 fn CurrentPhysicalMediaType(&self) -> ::windows::core::Result<IMAPI_MEDIA_PHYSICAL_TYPE>;
496 fn SetClientName(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
497 fn ClientName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
498 fn RequestedWriteSpeed(&self) -> ::windows::core::Result<i32>;
499 fn RequestedRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
500 fn CurrentWriteSpeed(&self) -> ::windows::core::Result<i32>;
501 fn CurrentRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
502 fn SupportedWriteSpeeds(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
503 fn SupportedWriteSpeedDescriptors(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
504 fn SetForceOverwrite(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
505 fn ForceOverwrite(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
506 fn MultisessionInterfaces(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
507 fn Write(&self, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
508 fn CancelWrite(&self) -> ::windows::core::Result<()>;
509 fn SetWriteSpeed(&self, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
510}
511#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
512impl ::windows::core::RuntimeName for IDiscFormat2Data {}
513#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
514impl IDiscFormat2Data_Vtbl {
515 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>() -> IDiscFormat2Data_Vtbl {
516 unsafe extern "system" fn SetRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
517 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
518 let this = (*this).get_impl();
519 this.SetRecorder(::windows::core::from_raw_borrowed(&value)).into()
520 }
521 unsafe extern "system" fn Recorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
522 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
523 let this = (*this).get_impl();
524 match this.Recorder() {
525 ::core::result::Result::Ok(ok__) => {
526 ::core::ptr::write(value, ::core::mem::transmute(ok__));
527 ::windows::core::HRESULT(0)
528 }
529 ::core::result::Result::Err(err) => err.into(),
530 }
531 }
532 unsafe extern "system" fn SetBufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
533 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
534 let this = (*this).get_impl();
535 this.SetBufferUnderrunFreeDisabled(::core::mem::transmute_copy(&value)).into()
536 }
537 unsafe extern "system" fn BufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
538 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
539 let this = (*this).get_impl();
540 match this.BufferUnderrunFreeDisabled() {
541 ::core::result::Result::Ok(ok__) => {
542 ::core::ptr::write(value, ::core::mem::transmute(ok__));
543 ::windows::core::HRESULT(0)
544 }
545 ::core::result::Result::Err(err) => err.into(),
546 }
547 }
548 unsafe extern "system" fn SetPostgapAlreadyInImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
549 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
550 let this = (*this).get_impl();
551 this.SetPostgapAlreadyInImage(::core::mem::transmute_copy(&value)).into()
552 }
553 unsafe extern "system" fn PostgapAlreadyInImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
554 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
555 let this = (*this).get_impl();
556 match this.PostgapAlreadyInImage() {
557 ::core::result::Result::Ok(ok__) => {
558 ::core::ptr::write(value, ::core::mem::transmute(ok__));
559 ::windows::core::HRESULT(0)
560 }
561 ::core::result::Result::Err(err) => err.into(),
562 }
563 }
564 unsafe extern "system" fn CurrentMediaStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_DATA_MEDIA_STATE) -> ::windows::core::HRESULT {
565 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
566 let this = (*this).get_impl();
567 match this.CurrentMediaStatus() {
568 ::core::result::Result::Ok(ok__) => {
569 ::core::ptr::write(value, ::core::mem::transmute(ok__));
570 ::windows::core::HRESULT(0)
571 }
572 ::core::result::Result::Err(err) => err.into(),
573 }
574 }
575 unsafe extern "system" fn WriteProtectStatus<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_WRITE_PROTECT_STATE) -> ::windows::core::HRESULT {
576 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
577 let this = (*this).get_impl();
578 match this.WriteProtectStatus() {
579 ::core::result::Result::Ok(ok__) => {
580 ::core::ptr::write(value, ::core::mem::transmute(ok__));
581 ::windows::core::HRESULT(0)
582 }
583 ::core::result::Result::Err(err) => err.into(),
584 }
585 }
586 unsafe extern "system" fn TotalSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
587 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
588 let this = (*this).get_impl();
589 match this.TotalSectorsOnMedia() {
590 ::core::result::Result::Ok(ok__) => {
591 ::core::ptr::write(value, ::core::mem::transmute(ok__));
592 ::windows::core::HRESULT(0)
593 }
594 ::core::result::Result::Err(err) => err.into(),
595 }
596 }
597 unsafe extern "system" fn FreeSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
598 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
599 let this = (*this).get_impl();
600 match this.FreeSectorsOnMedia() {
601 ::core::result::Result::Ok(ok__) => {
602 ::core::ptr::write(value, ::core::mem::transmute(ok__));
603 ::windows::core::HRESULT(0)
604 }
605 ::core::result::Result::Err(err) => err.into(),
606 }
607 }
608 unsafe extern "system" fn NextWritableAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
609 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
610 let this = (*this).get_impl();
611 match this.NextWritableAddress() {
612 ::core::result::Result::Ok(ok__) => {
613 ::core::ptr::write(value, ::core::mem::transmute(ok__));
614 ::windows::core::HRESULT(0)
615 }
616 ::core::result::Result::Err(err) => err.into(),
617 }
618 }
619 unsafe extern "system" fn StartAddressOfPreviousSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
620 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
621 let this = (*this).get_impl();
622 match this.StartAddressOfPreviousSession() {
623 ::core::result::Result::Ok(ok__) => {
624 ::core::ptr::write(value, ::core::mem::transmute(ok__));
625 ::windows::core::HRESULT(0)
626 }
627 ::core::result::Result::Err(err) => err.into(),
628 }
629 }
630 unsafe extern "system" fn LastWrittenAddressOfPreviousSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
631 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
632 let this = (*this).get_impl();
633 match this.LastWrittenAddressOfPreviousSession() {
634 ::core::result::Result::Ok(ok__) => {
635 ::core::ptr::write(value, ::core::mem::transmute(ok__));
636 ::windows::core::HRESULT(0)
637 }
638 ::core::result::Result::Err(err) => err.into(),
639 }
640 }
641 unsafe extern "system" fn SetForceMediaToBeClosed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
642 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
643 let this = (*this).get_impl();
644 this.SetForceMediaToBeClosed(::core::mem::transmute_copy(&value)).into()
645 }
646 unsafe extern "system" fn ForceMediaToBeClosed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
647 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
648 let this = (*this).get_impl();
649 match this.ForceMediaToBeClosed() {
650 ::core::result::Result::Ok(ok__) => {
651 ::core::ptr::write(value, ::core::mem::transmute(ok__));
652 ::windows::core::HRESULT(0)
653 }
654 ::core::result::Result::Err(err) => err.into(),
655 }
656 }
657 unsafe extern "system" fn SetDisableConsumerDvdCompatibilityMode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
658 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
659 let this = (*this).get_impl();
660 this.SetDisableConsumerDvdCompatibilityMode(::core::mem::transmute_copy(&value)).into()
661 }
662 unsafe extern "system" fn DisableConsumerDvdCompatibilityMode<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
663 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
664 let this = (*this).get_impl();
665 match this.DisableConsumerDvdCompatibilityMode() {
666 ::core::result::Result::Ok(ok__) => {
667 ::core::ptr::write(value, ::core::mem::transmute(ok__));
668 ::windows::core::HRESULT(0)
669 }
670 ::core::result::Result::Err(err) => err.into(),
671 }
672 }
673 unsafe extern "system" fn CurrentPhysicalMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
674 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
675 let this = (*this).get_impl();
676 match this.CurrentPhysicalMediaType() {
677 ::core::result::Result::Ok(ok__) => {
678 ::core::ptr::write(value, ::core::mem::transmute(ok__));
679 ::windows::core::HRESULT(0)
680 }
681 ::core::result::Result::Err(err) => err.into(),
682 }
683 }
684 unsafe extern "system" fn SetClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
685 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
686 let this = (*this).get_impl();
687 this.SetClientName(::core::mem::transmute(&value)).into()
688 }
689 unsafe extern "system" fn ClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
690 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
691 let this = (*this).get_impl();
692 match this.ClientName() {
693 ::core::result::Result::Ok(ok__) => {
694 ::core::ptr::write(value, ::core::mem::transmute(ok__));
695 ::windows::core::HRESULT(0)
696 }
697 ::core::result::Result::Err(err) => err.into(),
698 }
699 }
700 unsafe extern "system" fn RequestedWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
701 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
702 let this = (*this).get_impl();
703 match this.RequestedWriteSpeed() {
704 ::core::result::Result::Ok(ok__) => {
705 ::core::ptr::write(value, ::core::mem::transmute(ok__));
706 ::windows::core::HRESULT(0)
707 }
708 ::core::result::Result::Err(err) => err.into(),
709 }
710 }
711 unsafe extern "system" fn RequestedRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
712 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
713 let this = (*this).get_impl();
714 match this.RequestedRotationTypeIsPureCAV() {
715 ::core::result::Result::Ok(ok__) => {
716 ::core::ptr::write(value, ::core::mem::transmute(ok__));
717 ::windows::core::HRESULT(0)
718 }
719 ::core::result::Result::Err(err) => err.into(),
720 }
721 }
722 unsafe extern "system" fn CurrentWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
723 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
724 let this = (*this).get_impl();
725 match this.CurrentWriteSpeed() {
726 ::core::result::Result::Ok(ok__) => {
727 ::core::ptr::write(value, ::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 CurrentRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
734 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
735 let this = (*this).get_impl();
736 match this.CurrentRotationTypeIsPureCAV() {
737 ::core::result::Result::Ok(ok__) => {
738 ::core::ptr::write(value, ::core::mem::transmute(ok__));
739 ::windows::core::HRESULT(0)
740 }
741 ::core::result::Result::Err(err) => err.into(),
742 }
743 }
744 unsafe extern "system" fn SupportedWriteSpeeds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeds: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
745 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
746 let this = (*this).get_impl();
747 match this.SupportedWriteSpeeds() {
748 ::core::result::Result::Ok(ok__) => {
749 ::core::ptr::write(supportedspeeds, ::core::mem::transmute(ok__));
750 ::windows::core::HRESULT(0)
751 }
752 ::core::result::Result::Err(err) => err.into(),
753 }
754 }
755 unsafe extern "system" fn SupportedWriteSpeedDescriptors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeddescriptors: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
756 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
757 let this = (*this).get_impl();
758 match this.SupportedWriteSpeedDescriptors() {
759 ::core::result::Result::Ok(ok__) => {
760 ::core::ptr::write(supportedspeeddescriptors, ::core::mem::transmute(ok__));
761 ::windows::core::HRESULT(0)
762 }
763 ::core::result::Result::Err(err) => err.into(),
764 }
765 }
766 unsafe extern "system" fn SetForceOverwrite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
767 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
768 let this = (*this).get_impl();
769 this.SetForceOverwrite(::core::mem::transmute_copy(&value)).into()
770 }
771 unsafe extern "system" fn ForceOverwrite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
772 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
773 let this = (*this).get_impl();
774 match this.ForceOverwrite() {
775 ::core::result::Result::Ok(ok__) => {
776 ::core::ptr::write(value, ::core::mem::transmute(ok__));
777 ::windows::core::HRESULT(0)
778 }
779 ::core::result::Result::Err(err) => err.into(),
780 }
781 }
782 unsafe extern "system" fn MultisessionInterfaces<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
783 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
784 let this = (*this).get_impl();
785 match this.MultisessionInterfaces() {
786 ::core::result::Result::Ok(ok__) => {
787 ::core::ptr::write(value, ::core::mem::transmute(ok__));
788 ::windows::core::HRESULT(0)
789 }
790 ::core::result::Result::Err(err) => err.into(),
791 }
792 }
793 unsafe extern "system" fn Write<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
794 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
795 let this = (*this).get_impl();
796 this.Write(::windows::core::from_raw_borrowed(&data)).into()
797 }
798 unsafe extern "system" fn CancelWrite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
799 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
800 let this = (*this).get_impl();
801 this.CancelWrite().into()
802 }
803 unsafe extern "system" fn SetWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Data_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
804 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
805 let this = (*this).get_impl();
806 this.SetWriteSpeed(::core::mem::transmute_copy(&requestedsectorspersecond), ::core::mem::transmute_copy(&rotationtypeispurecav)).into()
807 }
808 Self {
809 base__: IDiscFormat2_Vtbl::new::<Identity, Impl, OFFSET>(),
810 SetRecorder: SetRecorder::<Identity, Impl, OFFSET>,
811 Recorder: Recorder::<Identity, Impl, OFFSET>,
812 SetBufferUnderrunFreeDisabled: SetBufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
813 BufferUnderrunFreeDisabled: BufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
814 SetPostgapAlreadyInImage: SetPostgapAlreadyInImage::<Identity, Impl, OFFSET>,
815 PostgapAlreadyInImage: PostgapAlreadyInImage::<Identity, Impl, OFFSET>,
816 CurrentMediaStatus: CurrentMediaStatus::<Identity, Impl, OFFSET>,
817 WriteProtectStatus: WriteProtectStatus::<Identity, Impl, OFFSET>,
818 TotalSectorsOnMedia: TotalSectorsOnMedia::<Identity, Impl, OFFSET>,
819 FreeSectorsOnMedia: FreeSectorsOnMedia::<Identity, Impl, OFFSET>,
820 NextWritableAddress: NextWritableAddress::<Identity, Impl, OFFSET>,
821 StartAddressOfPreviousSession: StartAddressOfPreviousSession::<Identity, Impl, OFFSET>,
822 LastWrittenAddressOfPreviousSession: LastWrittenAddressOfPreviousSession::<Identity, Impl, OFFSET>,
823 SetForceMediaToBeClosed: SetForceMediaToBeClosed::<Identity, Impl, OFFSET>,
824 ForceMediaToBeClosed: ForceMediaToBeClosed::<Identity, Impl, OFFSET>,
825 SetDisableConsumerDvdCompatibilityMode: SetDisableConsumerDvdCompatibilityMode::<Identity, Impl, OFFSET>,
826 DisableConsumerDvdCompatibilityMode: DisableConsumerDvdCompatibilityMode::<Identity, Impl, OFFSET>,
827 CurrentPhysicalMediaType: CurrentPhysicalMediaType::<Identity, Impl, OFFSET>,
828 SetClientName: SetClientName::<Identity, Impl, OFFSET>,
829 ClientName: ClientName::<Identity, Impl, OFFSET>,
830 RequestedWriteSpeed: RequestedWriteSpeed::<Identity, Impl, OFFSET>,
831 RequestedRotationTypeIsPureCAV: RequestedRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
832 CurrentWriteSpeed: CurrentWriteSpeed::<Identity, Impl, OFFSET>,
833 CurrentRotationTypeIsPureCAV: CurrentRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
834 SupportedWriteSpeeds: SupportedWriteSpeeds::<Identity, Impl, OFFSET>,
835 SupportedWriteSpeedDescriptors: SupportedWriteSpeedDescriptors::<Identity, Impl, OFFSET>,
836 SetForceOverwrite: SetForceOverwrite::<Identity, Impl, OFFSET>,
837 ForceOverwrite: ForceOverwrite::<Identity, Impl, OFFSET>,
838 MultisessionInterfaces: MultisessionInterfaces::<Identity, Impl, OFFSET>,
839 Write: Write::<Identity, Impl, OFFSET>,
840 CancelWrite: CancelWrite::<Identity, Impl, OFFSET>,
841 SetWriteSpeed: SetWriteSpeed::<Identity, Impl, OFFSET>,
842 }
843 }
844 pub fn matches(iid: &windows::core::GUID) -> bool {
845 iid == &<IDiscFormat2Data as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IDiscFormat2 as ::windows::core::ComInterface>::IID
846 }
847}
848#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
849#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
850pub trait IDiscFormat2DataEventArgs_Impl: Sized + IWriteEngine2EventArgs_Impl {
851 fn ElapsedTime(&self) -> ::windows::core::Result<i32>;
852 fn RemainingTime(&self) -> ::windows::core::Result<i32>;
853 fn TotalTime(&self) -> ::windows::core::Result<i32>;
854 fn CurrentAction(&self) -> ::windows::core::Result<IMAPI_FORMAT2_DATA_WRITE_ACTION>;
855}
856#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
857impl ::windows::core::RuntimeName for IDiscFormat2DataEventArgs {}
858#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
859impl IDiscFormat2DataEventArgs_Vtbl {
860 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2DataEventArgs_Impl, const OFFSET: isize>() -> IDiscFormat2DataEventArgs_Vtbl {
861 unsafe extern "system" fn ElapsedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2DataEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
862 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
863 let this = (*this).get_impl();
864 match this.ElapsedTime() {
865 ::core::result::Result::Ok(ok__) => {
866 ::core::ptr::write(value, ::core::mem::transmute(ok__));
867 ::windows::core::HRESULT(0)
868 }
869 ::core::result::Result::Err(err) => err.into(),
870 }
871 }
872 unsafe extern "system" fn RemainingTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2DataEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
873 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
874 let this = (*this).get_impl();
875 match this.RemainingTime() {
876 ::core::result::Result::Ok(ok__) => {
877 ::core::ptr::write(value, ::core::mem::transmute(ok__));
878 ::windows::core::HRESULT(0)
879 }
880 ::core::result::Result::Err(err) => err.into(),
881 }
882 }
883 unsafe extern "system" fn TotalTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2DataEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
884 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
885 let this = (*this).get_impl();
886 match this.TotalTime() {
887 ::core::result::Result::Ok(ok__) => {
888 ::core::ptr::write(value, ::core::mem::transmute(ok__));
889 ::windows::core::HRESULT(0)
890 }
891 ::core::result::Result::Err(err) => err.into(),
892 }
893 }
894 unsafe extern "system" fn CurrentAction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2DataEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_DATA_WRITE_ACTION) -> ::windows::core::HRESULT {
895 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
896 let this = (*this).get_impl();
897 match this.CurrentAction() {
898 ::core::result::Result::Ok(ok__) => {
899 ::core::ptr::write(value, ::core::mem::transmute(ok__));
900 ::windows::core::HRESULT(0)
901 }
902 ::core::result::Result::Err(err) => err.into(),
903 }
904 }
905 Self {
906 base__: IWriteEngine2EventArgs_Vtbl::new::<Identity, Impl, OFFSET>(),
907 ElapsedTime: ElapsedTime::<Identity, Impl, OFFSET>,
908 RemainingTime: RemainingTime::<Identity, Impl, OFFSET>,
909 TotalTime: TotalTime::<Identity, Impl, OFFSET>,
910 CurrentAction: CurrentAction::<Identity, Impl, OFFSET>,
911 }
912 }
913 pub fn matches(iid: &windows::core::GUID) -> bool {
914 iid == &<IDiscFormat2DataEventArgs as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IWriteEngine2EventArgs as ::windows::core::ComInterface>::IID
915 }
916}
917#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
918#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
919pub trait IDiscFormat2Erase_Impl: Sized + IDiscFormat2_Impl {
920 fn SetRecorder(&self, value: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
921 fn Recorder(&self) -> ::windows::core::Result<IDiscRecorder2>;
922 fn SetFullErase(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
923 fn FullErase(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
924 fn CurrentPhysicalMediaType(&self) -> ::windows::core::Result<IMAPI_MEDIA_PHYSICAL_TYPE>;
925 fn SetClientName(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
926 fn ClientName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
927 fn EraseMedia(&self) -> ::windows::core::Result<()>;
928}
929#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
930impl ::windows::core::RuntimeName for IDiscFormat2Erase {}
931#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
932impl IDiscFormat2Erase_Vtbl {
933 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>() -> IDiscFormat2Erase_Vtbl {
934 unsafe extern "system" fn SetRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
935 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
936 let this = (*this).get_impl();
937 this.SetRecorder(::windows::core::from_raw_borrowed(&value)).into()
938 }
939 unsafe extern "system" fn Recorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
940 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
941 let this = (*this).get_impl();
942 match this.Recorder() {
943 ::core::result::Result::Ok(ok__) => {
944 ::core::ptr::write(value, ::core::mem::transmute(ok__));
945 ::windows::core::HRESULT(0)
946 }
947 ::core::result::Result::Err(err) => err.into(),
948 }
949 }
950 unsafe extern "system" fn SetFullErase<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
951 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
952 let this = (*this).get_impl();
953 this.SetFullErase(::core::mem::transmute_copy(&value)).into()
954 }
955 unsafe extern "system" fn FullErase<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
956 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
957 let this = (*this).get_impl();
958 match this.FullErase() {
959 ::core::result::Result::Ok(ok__) => {
960 ::core::ptr::write(value, ::core::mem::transmute(ok__));
961 ::windows::core::HRESULT(0)
962 }
963 ::core::result::Result::Err(err) => err.into(),
964 }
965 }
966 unsafe extern "system" fn CurrentPhysicalMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
967 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
968 let this = (*this).get_impl();
969 match this.CurrentPhysicalMediaType() {
970 ::core::result::Result::Ok(ok__) => {
971 ::core::ptr::write(value, ::core::mem::transmute(ok__));
972 ::windows::core::HRESULT(0)
973 }
974 ::core::result::Result::Err(err) => err.into(),
975 }
976 }
977 unsafe extern "system" fn SetClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
978 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
979 let this = (*this).get_impl();
980 this.SetClientName(::core::mem::transmute(&value)).into()
981 }
982 unsafe extern "system" fn ClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
983 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
984 let this = (*this).get_impl();
985 match this.ClientName() {
986 ::core::result::Result::Ok(ok__) => {
987 ::core::ptr::write(value, ::core::mem::transmute(ok__));
988 ::windows::core::HRESULT(0)
989 }
990 ::core::result::Result::Err(err) => err.into(),
991 }
992 }
993 unsafe extern "system" fn EraseMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2Erase_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
994 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
995 let this = (*this).get_impl();
996 this.EraseMedia().into()
997 }
998 Self {
999 base__: IDiscFormat2_Vtbl::new::<Identity, Impl, OFFSET>(),
1000 SetRecorder: SetRecorder::<Identity, Impl, OFFSET>,
1001 Recorder: Recorder::<Identity, Impl, OFFSET>,
1002 SetFullErase: SetFullErase::<Identity, Impl, OFFSET>,
1003 FullErase: FullErase::<Identity, Impl, OFFSET>,
1004 CurrentPhysicalMediaType: CurrentPhysicalMediaType::<Identity, Impl, OFFSET>,
1005 SetClientName: SetClientName::<Identity, Impl, OFFSET>,
1006 ClientName: ClientName::<Identity, Impl, OFFSET>,
1007 EraseMedia: EraseMedia::<Identity, Impl, OFFSET>,
1008 }
1009 }
1010 pub fn matches(iid: &windows::core::GUID) -> bool {
1011 iid == &<IDiscFormat2Erase as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IDiscFormat2 as ::windows::core::ComInterface>::IID
1012 }
1013}
1014#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
1015#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1016pub trait IDiscFormat2RawCD_Impl: Sized + IDiscFormat2_Impl {
1017 fn PrepareMedia(&self) -> ::windows::core::Result<()>;
1018 fn WriteMedia(&self, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
1019 fn WriteMedia2(&self, data: ::core::option::Option<&super::super::System::Com::IStream>, streamleadinsectors: i32) -> ::windows::core::Result<()>;
1020 fn CancelWrite(&self) -> ::windows::core::Result<()>;
1021 fn ReleaseMedia(&self) -> ::windows::core::Result<()>;
1022 fn SetWriteSpeed(&self, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
1023 fn SetRecorder(&self, value: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
1024 fn Recorder(&self) -> ::windows::core::Result<IDiscRecorder2>;
1025 fn SetBufferUnderrunFreeDisabled(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
1026 fn BufferUnderrunFreeDisabled(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1027 fn StartOfNextSession(&self) -> ::windows::core::Result<i32>;
1028 fn LastPossibleStartOfLeadout(&self) -> ::windows::core::Result<i32>;
1029 fn CurrentPhysicalMediaType(&self) -> ::windows::core::Result<IMAPI_MEDIA_PHYSICAL_TYPE>;
1030 fn SupportedSectorTypes(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1031 fn SetRequestedSectorType(&self, value: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::Result<()>;
1032 fn RequestedSectorType(&self) -> ::windows::core::Result<IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE>;
1033 fn SetClientName(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
1034 fn ClientName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
1035 fn RequestedWriteSpeed(&self) -> ::windows::core::Result<i32>;
1036 fn RequestedRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1037 fn CurrentWriteSpeed(&self) -> ::windows::core::Result<i32>;
1038 fn CurrentRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1039 fn SupportedWriteSpeeds(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1040 fn SupportedWriteSpeedDescriptors(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1041}
1042#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1043impl ::windows::core::RuntimeName for IDiscFormat2RawCD {}
1044#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1045impl IDiscFormat2RawCD_Vtbl {
1046 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>() -> IDiscFormat2RawCD_Vtbl {
1047 unsafe extern "system" fn PrepareMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1048 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1049 let this = (*this).get_impl();
1050 this.PrepareMedia().into()
1051 }
1052 unsafe extern "system" fn WriteMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1053 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1054 let this = (*this).get_impl();
1055 this.WriteMedia(::windows::core::from_raw_borrowed(&data)).into()
1056 }
1057 unsafe extern "system" fn WriteMedia2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void, streamleadinsectors: i32) -> ::windows::core::HRESULT {
1058 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1059 let this = (*this).get_impl();
1060 this.WriteMedia2(::windows::core::from_raw_borrowed(&data), ::core::mem::transmute_copy(&streamleadinsectors)).into()
1061 }
1062 unsafe extern "system" fn CancelWrite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1063 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1064 let this = (*this).get_impl();
1065 this.CancelWrite().into()
1066 }
1067 unsafe extern "system" fn ReleaseMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1068 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1069 let this = (*this).get_impl();
1070 this.ReleaseMedia().into()
1071 }
1072 unsafe extern "system" fn SetWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1073 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1074 let this = (*this).get_impl();
1075 this.SetWriteSpeed(::core::mem::transmute_copy(&requestedsectorspersecond), ::core::mem::transmute_copy(&rotationtypeispurecav)).into()
1076 }
1077 unsafe extern "system" fn SetRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1078 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1079 let this = (*this).get_impl();
1080 this.SetRecorder(::windows::core::from_raw_borrowed(&value)).into()
1081 }
1082 unsafe extern "system" fn Recorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1083 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1084 let this = (*this).get_impl();
1085 match this.Recorder() {
1086 ::core::result::Result::Ok(ok__) => {
1087 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1088 ::windows::core::HRESULT(0)
1089 }
1090 ::core::result::Result::Err(err) => err.into(),
1091 }
1092 }
1093 unsafe extern "system" fn SetBufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1094 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1095 let this = (*this).get_impl();
1096 this.SetBufferUnderrunFreeDisabled(::core::mem::transmute_copy(&value)).into()
1097 }
1098 unsafe extern "system" fn BufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1099 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1100 let this = (*this).get_impl();
1101 match this.BufferUnderrunFreeDisabled() {
1102 ::core::result::Result::Ok(ok__) => {
1103 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1104 ::windows::core::HRESULT(0)
1105 }
1106 ::core::result::Result::Err(err) => err.into(),
1107 }
1108 }
1109 unsafe extern "system" fn StartOfNextSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1110 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1111 let this = (*this).get_impl();
1112 match this.StartOfNextSession() {
1113 ::core::result::Result::Ok(ok__) => {
1114 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1115 ::windows::core::HRESULT(0)
1116 }
1117 ::core::result::Result::Err(err) => err.into(),
1118 }
1119 }
1120 unsafe extern "system" fn LastPossibleStartOfLeadout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1121 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1122 let this = (*this).get_impl();
1123 match this.LastPossibleStartOfLeadout() {
1124 ::core::result::Result::Ok(ok__) => {
1125 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1126 ::windows::core::HRESULT(0)
1127 }
1128 ::core::result::Result::Err(err) => err.into(),
1129 }
1130 }
1131 unsafe extern "system" fn CurrentPhysicalMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
1132 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1133 let this = (*this).get_impl();
1134 match this.CurrentPhysicalMediaType() {
1135 ::core::result::Result::Ok(ok__) => {
1136 ::core::ptr::write(value, ::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 SupportedSectorTypes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1143 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1144 let this = (*this).get_impl();
1145 match this.SupportedSectorTypes() {
1146 ::core::result::Result::Ok(ok__) => {
1147 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1148 ::windows::core::HRESULT(0)
1149 }
1150 ::core::result::Result::Err(err) => err.into(),
1151 }
1152 }
1153 unsafe extern "system" fn SetRequestedSectorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::HRESULT {
1154 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1155 let this = (*this).get_impl();
1156 this.SetRequestedSectorType(::core::mem::transmute_copy(&value)).into()
1157 }
1158 unsafe extern "system" fn RequestedSectorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::HRESULT {
1159 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1160 let this = (*this).get_impl();
1161 match this.RequestedSectorType() {
1162 ::core::result::Result::Ok(ok__) => {
1163 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1164 ::windows::core::HRESULT(0)
1165 }
1166 ::core::result::Result::Err(err) => err.into(),
1167 }
1168 }
1169 unsafe extern "system" fn SetClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
1170 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1171 let this = (*this).get_impl();
1172 this.SetClientName(::core::mem::transmute(&value)).into()
1173 }
1174 unsafe extern "system" fn ClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
1175 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1176 let this = (*this).get_impl();
1177 match this.ClientName() {
1178 ::core::result::Result::Ok(ok__) => {
1179 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1180 ::windows::core::HRESULT(0)
1181 }
1182 ::core::result::Result::Err(err) => err.into(),
1183 }
1184 }
1185 unsafe extern "system" fn RequestedWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1186 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1187 let this = (*this).get_impl();
1188 match this.RequestedWriteSpeed() {
1189 ::core::result::Result::Ok(ok__) => {
1190 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1191 ::windows::core::HRESULT(0)
1192 }
1193 ::core::result::Result::Err(err) => err.into(),
1194 }
1195 }
1196 unsafe extern "system" fn RequestedRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1197 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1198 let this = (*this).get_impl();
1199 match this.RequestedRotationTypeIsPureCAV() {
1200 ::core::result::Result::Ok(ok__) => {
1201 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1202 ::windows::core::HRESULT(0)
1203 }
1204 ::core::result::Result::Err(err) => err.into(),
1205 }
1206 }
1207 unsafe extern "system" fn CurrentWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1208 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1209 let this = (*this).get_impl();
1210 match this.CurrentWriteSpeed() {
1211 ::core::result::Result::Ok(ok__) => {
1212 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1213 ::windows::core::HRESULT(0)
1214 }
1215 ::core::result::Result::Err(err) => err.into(),
1216 }
1217 }
1218 unsafe extern "system" fn CurrentRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1219 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1220 let this = (*this).get_impl();
1221 match this.CurrentRotationTypeIsPureCAV() {
1222 ::core::result::Result::Ok(ok__) => {
1223 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1224 ::windows::core::HRESULT(0)
1225 }
1226 ::core::result::Result::Err(err) => err.into(),
1227 }
1228 }
1229 unsafe extern "system" fn SupportedWriteSpeeds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeds: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1230 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1231 let this = (*this).get_impl();
1232 match this.SupportedWriteSpeeds() {
1233 ::core::result::Result::Ok(ok__) => {
1234 ::core::ptr::write(supportedspeeds, ::core::mem::transmute(ok__));
1235 ::windows::core::HRESULT(0)
1236 }
1237 ::core::result::Result::Err(err) => err.into(),
1238 }
1239 }
1240 unsafe extern "system" fn SupportedWriteSpeedDescriptors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCD_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeddescriptors: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1241 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1242 let this = (*this).get_impl();
1243 match this.SupportedWriteSpeedDescriptors() {
1244 ::core::result::Result::Ok(ok__) => {
1245 ::core::ptr::write(supportedspeeddescriptors, ::core::mem::transmute(ok__));
1246 ::windows::core::HRESULT(0)
1247 }
1248 ::core::result::Result::Err(err) => err.into(),
1249 }
1250 }
1251 Self {
1252 base__: IDiscFormat2_Vtbl::new::<Identity, Impl, OFFSET>(),
1253 PrepareMedia: PrepareMedia::<Identity, Impl, OFFSET>,
1254 WriteMedia: WriteMedia::<Identity, Impl, OFFSET>,
1255 WriteMedia2: WriteMedia2::<Identity, Impl, OFFSET>,
1256 CancelWrite: CancelWrite::<Identity, Impl, OFFSET>,
1257 ReleaseMedia: ReleaseMedia::<Identity, Impl, OFFSET>,
1258 SetWriteSpeed: SetWriteSpeed::<Identity, Impl, OFFSET>,
1259 SetRecorder: SetRecorder::<Identity, Impl, OFFSET>,
1260 Recorder: Recorder::<Identity, Impl, OFFSET>,
1261 SetBufferUnderrunFreeDisabled: SetBufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
1262 BufferUnderrunFreeDisabled: BufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
1263 StartOfNextSession: StartOfNextSession::<Identity, Impl, OFFSET>,
1264 LastPossibleStartOfLeadout: LastPossibleStartOfLeadout::<Identity, Impl, OFFSET>,
1265 CurrentPhysicalMediaType: CurrentPhysicalMediaType::<Identity, Impl, OFFSET>,
1266 SupportedSectorTypes: SupportedSectorTypes::<Identity, Impl, OFFSET>,
1267 SetRequestedSectorType: SetRequestedSectorType::<Identity, Impl, OFFSET>,
1268 RequestedSectorType: RequestedSectorType::<Identity, Impl, OFFSET>,
1269 SetClientName: SetClientName::<Identity, Impl, OFFSET>,
1270 ClientName: ClientName::<Identity, Impl, OFFSET>,
1271 RequestedWriteSpeed: RequestedWriteSpeed::<Identity, Impl, OFFSET>,
1272 RequestedRotationTypeIsPureCAV: RequestedRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
1273 CurrentWriteSpeed: CurrentWriteSpeed::<Identity, Impl, OFFSET>,
1274 CurrentRotationTypeIsPureCAV: CurrentRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
1275 SupportedWriteSpeeds: SupportedWriteSpeeds::<Identity, Impl, OFFSET>,
1276 SupportedWriteSpeedDescriptors: SupportedWriteSpeedDescriptors::<Identity, Impl, OFFSET>,
1277 }
1278 }
1279 pub fn matches(iid: &windows::core::GUID) -> bool {
1280 iid == &<IDiscFormat2RawCD as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IDiscFormat2 as ::windows::core::ComInterface>::IID
1281 }
1282}
1283#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
1284#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1285pub trait IDiscFormat2RawCDEventArgs_Impl: Sized + IWriteEngine2EventArgs_Impl {
1286 fn CurrentAction(&self) -> ::windows::core::Result<IMAPI_FORMAT2_RAW_CD_WRITE_ACTION>;
1287 fn ElapsedTime(&self) -> ::windows::core::Result<i32>;
1288 fn RemainingTime(&self) -> ::windows::core::Result<i32>;
1289}
1290#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1291impl ::windows::core::RuntimeName for IDiscFormat2RawCDEventArgs {}
1292#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1293impl IDiscFormat2RawCDEventArgs_Vtbl {
1294 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCDEventArgs_Impl, const OFFSET: isize>() -> IDiscFormat2RawCDEventArgs_Vtbl {
1295 unsafe extern "system" fn CurrentAction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCDEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_RAW_CD_WRITE_ACTION) -> ::windows::core::HRESULT {
1296 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1297 let this = (*this).get_impl();
1298 match this.CurrentAction() {
1299 ::core::result::Result::Ok(ok__) => {
1300 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1301 ::windows::core::HRESULT(0)
1302 }
1303 ::core::result::Result::Err(err) => err.into(),
1304 }
1305 }
1306 unsafe extern "system" fn ElapsedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCDEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1307 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1308 let this = (*this).get_impl();
1309 match this.ElapsedTime() {
1310 ::core::result::Result::Ok(ok__) => {
1311 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1312 ::windows::core::HRESULT(0)
1313 }
1314 ::core::result::Result::Err(err) => err.into(),
1315 }
1316 }
1317 unsafe extern "system" fn RemainingTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2RawCDEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1318 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1319 let this = (*this).get_impl();
1320 match this.RemainingTime() {
1321 ::core::result::Result::Ok(ok__) => {
1322 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1323 ::windows::core::HRESULT(0)
1324 }
1325 ::core::result::Result::Err(err) => err.into(),
1326 }
1327 }
1328 Self {
1329 base__: IWriteEngine2EventArgs_Vtbl::new::<Identity, Impl, OFFSET>(),
1330 CurrentAction: CurrentAction::<Identity, Impl, OFFSET>,
1331 ElapsedTime: ElapsedTime::<Identity, Impl, OFFSET>,
1332 RemainingTime: RemainingTime::<Identity, Impl, OFFSET>,
1333 }
1334 }
1335 pub fn matches(iid: &windows::core::GUID) -> bool {
1336 iid == &<IDiscFormat2RawCDEventArgs as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IWriteEngine2EventArgs as ::windows::core::ComInterface>::IID
1337 }
1338}
1339#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
1340#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1341pub trait IDiscFormat2TrackAtOnce_Impl: Sized + IDiscFormat2_Impl {
1342 fn PrepareMedia(&self) -> ::windows::core::Result<()>;
1343 fn AddAudioTrack(&self, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
1344 fn CancelAddTrack(&self) -> ::windows::core::Result<()>;
1345 fn ReleaseMedia(&self) -> ::windows::core::Result<()>;
1346 fn SetWriteSpeed(&self, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
1347 fn SetRecorder(&self, value: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
1348 fn Recorder(&self) -> ::windows::core::Result<IDiscRecorder2>;
1349 fn SetBufferUnderrunFreeDisabled(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
1350 fn BufferUnderrunFreeDisabled(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1351 fn NumberOfExistingTracks(&self) -> ::windows::core::Result<i32>;
1352 fn TotalSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
1353 fn FreeSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
1354 fn UsedSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
1355 fn SetDoNotFinalizeMedia(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
1356 fn DoNotFinalizeMedia(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1357 fn ExpectedTableOfContents(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1358 fn CurrentPhysicalMediaType(&self) -> ::windows::core::Result<IMAPI_MEDIA_PHYSICAL_TYPE>;
1359 fn SetClientName(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
1360 fn ClientName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
1361 fn RequestedWriteSpeed(&self) -> ::windows::core::Result<i32>;
1362 fn RequestedRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1363 fn CurrentWriteSpeed(&self) -> ::windows::core::Result<i32>;
1364 fn CurrentRotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1365 fn SupportedWriteSpeeds(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1366 fn SupportedWriteSpeedDescriptors(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
1367}
1368#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1369impl ::windows::core::RuntimeName for IDiscFormat2TrackAtOnce {}
1370#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1371impl IDiscFormat2TrackAtOnce_Vtbl {
1372 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>() -> IDiscFormat2TrackAtOnce_Vtbl {
1373 unsafe extern "system" fn PrepareMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1374 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1375 let this = (*this).get_impl();
1376 this.PrepareMedia().into()
1377 }
1378 unsafe extern "system" fn AddAudioTrack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1379 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1380 let this = (*this).get_impl();
1381 this.AddAudioTrack(::windows::core::from_raw_borrowed(&data)).into()
1382 }
1383 unsafe extern "system" fn CancelAddTrack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1384 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1385 let this = (*this).get_impl();
1386 this.CancelAddTrack().into()
1387 }
1388 unsafe extern "system" fn ReleaseMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1389 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1390 let this = (*this).get_impl();
1391 this.ReleaseMedia().into()
1392 }
1393 unsafe extern "system" fn SetWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestedsectorspersecond: i32, rotationtypeispurecav: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1394 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1395 let this = (*this).get_impl();
1396 this.SetWriteSpeed(::core::mem::transmute_copy(&requestedsectorspersecond), ::core::mem::transmute_copy(&rotationtypeispurecav)).into()
1397 }
1398 unsafe extern "system" fn SetRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1399 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1400 let this = (*this).get_impl();
1401 this.SetRecorder(::windows::core::from_raw_borrowed(&value)).into()
1402 }
1403 unsafe extern "system" fn Recorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1404 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1405 let this = (*this).get_impl();
1406 match this.Recorder() {
1407 ::core::result::Result::Ok(ok__) => {
1408 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1409 ::windows::core::HRESULT(0)
1410 }
1411 ::core::result::Result::Err(err) => err.into(),
1412 }
1413 }
1414 unsafe extern "system" fn SetBufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1415 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1416 let this = (*this).get_impl();
1417 this.SetBufferUnderrunFreeDisabled(::core::mem::transmute_copy(&value)).into()
1418 }
1419 unsafe extern "system" fn BufferUnderrunFreeDisabled<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1420 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1421 let this = (*this).get_impl();
1422 match this.BufferUnderrunFreeDisabled() {
1423 ::core::result::Result::Ok(ok__) => {
1424 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1425 ::windows::core::HRESULT(0)
1426 }
1427 ::core::result::Result::Err(err) => err.into(),
1428 }
1429 }
1430 unsafe extern "system" fn NumberOfExistingTracks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1431 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1432 let this = (*this).get_impl();
1433 match this.NumberOfExistingTracks() {
1434 ::core::result::Result::Ok(ok__) => {
1435 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1436 ::windows::core::HRESULT(0)
1437 }
1438 ::core::result::Result::Err(err) => err.into(),
1439 }
1440 }
1441 unsafe extern "system" fn TotalSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1442 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1443 let this = (*this).get_impl();
1444 match this.TotalSectorsOnMedia() {
1445 ::core::result::Result::Ok(ok__) => {
1446 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1447 ::windows::core::HRESULT(0)
1448 }
1449 ::core::result::Result::Err(err) => err.into(),
1450 }
1451 }
1452 unsafe extern "system" fn FreeSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1453 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1454 let this = (*this).get_impl();
1455 match this.FreeSectorsOnMedia() {
1456 ::core::result::Result::Ok(ok__) => {
1457 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1458 ::windows::core::HRESULT(0)
1459 }
1460 ::core::result::Result::Err(err) => err.into(),
1461 }
1462 }
1463 unsafe extern "system" fn UsedSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1464 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1465 let this = (*this).get_impl();
1466 match this.UsedSectorsOnMedia() {
1467 ::core::result::Result::Ok(ok__) => {
1468 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1469 ::windows::core::HRESULT(0)
1470 }
1471 ::core::result::Result::Err(err) => err.into(),
1472 }
1473 }
1474 unsafe extern "system" fn SetDoNotFinalizeMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1475 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1476 let this = (*this).get_impl();
1477 this.SetDoNotFinalizeMedia(::core::mem::transmute_copy(&value)).into()
1478 }
1479 unsafe extern "system" fn DoNotFinalizeMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1480 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1481 let this = (*this).get_impl();
1482 match this.DoNotFinalizeMedia() {
1483 ::core::result::Result::Ok(ok__) => {
1484 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1485 ::windows::core::HRESULT(0)
1486 }
1487 ::core::result::Result::Err(err) => err.into(),
1488 }
1489 }
1490 unsafe extern "system" fn ExpectedTableOfContents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1491 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1492 let this = (*this).get_impl();
1493 match this.ExpectedTableOfContents() {
1494 ::core::result::Result::Ok(ok__) => {
1495 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1496 ::windows::core::HRESULT(0)
1497 }
1498 ::core::result::Result::Err(err) => err.into(),
1499 }
1500 }
1501 unsafe extern "system" fn CurrentPhysicalMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
1502 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1503 let this = (*this).get_impl();
1504 match this.CurrentPhysicalMediaType() {
1505 ::core::result::Result::Ok(ok__) => {
1506 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1507 ::windows::core::HRESULT(0)
1508 }
1509 ::core::result::Result::Err(err) => err.into(),
1510 }
1511 }
1512 unsafe extern "system" fn SetClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
1513 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1514 let this = (*this).get_impl();
1515 this.SetClientName(::core::mem::transmute(&value)).into()
1516 }
1517 unsafe extern "system" fn ClientName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
1518 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1519 let this = (*this).get_impl();
1520 match this.ClientName() {
1521 ::core::result::Result::Ok(ok__) => {
1522 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1523 ::windows::core::HRESULT(0)
1524 }
1525 ::core::result::Result::Err(err) => err.into(),
1526 }
1527 }
1528 unsafe extern "system" fn RequestedWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1529 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1530 let this = (*this).get_impl();
1531 match this.RequestedWriteSpeed() {
1532 ::core::result::Result::Ok(ok__) => {
1533 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1534 ::windows::core::HRESULT(0)
1535 }
1536 ::core::result::Result::Err(err) => err.into(),
1537 }
1538 }
1539 unsafe extern "system" fn RequestedRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1540 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1541 let this = (*this).get_impl();
1542 match this.RequestedRotationTypeIsPureCAV() {
1543 ::core::result::Result::Ok(ok__) => {
1544 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1545 ::windows::core::HRESULT(0)
1546 }
1547 ::core::result::Result::Err(err) => err.into(),
1548 }
1549 }
1550 unsafe extern "system" fn CurrentWriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1551 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1552 let this = (*this).get_impl();
1553 match this.CurrentWriteSpeed() {
1554 ::core::result::Result::Ok(ok__) => {
1555 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1556 ::windows::core::HRESULT(0)
1557 }
1558 ::core::result::Result::Err(err) => err.into(),
1559 }
1560 }
1561 unsafe extern "system" fn CurrentRotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1562 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1563 let this = (*this).get_impl();
1564 match this.CurrentRotationTypeIsPureCAV() {
1565 ::core::result::Result::Ok(ok__) => {
1566 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1567 ::windows::core::HRESULT(0)
1568 }
1569 ::core::result::Result::Err(err) => err.into(),
1570 }
1571 }
1572 unsafe extern "system" fn SupportedWriteSpeeds<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeds: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1573 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1574 let this = (*this).get_impl();
1575 match this.SupportedWriteSpeeds() {
1576 ::core::result::Result::Ok(ok__) => {
1577 ::core::ptr::write(supportedspeeds, ::core::mem::transmute(ok__));
1578 ::windows::core::HRESULT(0)
1579 }
1580 ::core::result::Result::Err(err) => err.into(),
1581 }
1582 }
1583 unsafe extern "system" fn SupportedWriteSpeedDescriptors<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnce_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, supportedspeeddescriptors: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
1584 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1585 let this = (*this).get_impl();
1586 match this.SupportedWriteSpeedDescriptors() {
1587 ::core::result::Result::Ok(ok__) => {
1588 ::core::ptr::write(supportedspeeddescriptors, ::core::mem::transmute(ok__));
1589 ::windows::core::HRESULT(0)
1590 }
1591 ::core::result::Result::Err(err) => err.into(),
1592 }
1593 }
1594 Self {
1595 base__: IDiscFormat2_Vtbl::new::<Identity, Impl, OFFSET>(),
1596 PrepareMedia: PrepareMedia::<Identity, Impl, OFFSET>,
1597 AddAudioTrack: AddAudioTrack::<Identity, Impl, OFFSET>,
1598 CancelAddTrack: CancelAddTrack::<Identity, Impl, OFFSET>,
1599 ReleaseMedia: ReleaseMedia::<Identity, Impl, OFFSET>,
1600 SetWriteSpeed: SetWriteSpeed::<Identity, Impl, OFFSET>,
1601 SetRecorder: SetRecorder::<Identity, Impl, OFFSET>,
1602 Recorder: Recorder::<Identity, Impl, OFFSET>,
1603 SetBufferUnderrunFreeDisabled: SetBufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
1604 BufferUnderrunFreeDisabled: BufferUnderrunFreeDisabled::<Identity, Impl, OFFSET>,
1605 NumberOfExistingTracks: NumberOfExistingTracks::<Identity, Impl, OFFSET>,
1606 TotalSectorsOnMedia: TotalSectorsOnMedia::<Identity, Impl, OFFSET>,
1607 FreeSectorsOnMedia: FreeSectorsOnMedia::<Identity, Impl, OFFSET>,
1608 UsedSectorsOnMedia: UsedSectorsOnMedia::<Identity, Impl, OFFSET>,
1609 SetDoNotFinalizeMedia: SetDoNotFinalizeMedia::<Identity, Impl, OFFSET>,
1610 DoNotFinalizeMedia: DoNotFinalizeMedia::<Identity, Impl, OFFSET>,
1611 ExpectedTableOfContents: ExpectedTableOfContents::<Identity, Impl, OFFSET>,
1612 CurrentPhysicalMediaType: CurrentPhysicalMediaType::<Identity, Impl, OFFSET>,
1613 SetClientName: SetClientName::<Identity, Impl, OFFSET>,
1614 ClientName: ClientName::<Identity, Impl, OFFSET>,
1615 RequestedWriteSpeed: RequestedWriteSpeed::<Identity, Impl, OFFSET>,
1616 RequestedRotationTypeIsPureCAV: RequestedRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
1617 CurrentWriteSpeed: CurrentWriteSpeed::<Identity, Impl, OFFSET>,
1618 CurrentRotationTypeIsPureCAV: CurrentRotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
1619 SupportedWriteSpeeds: SupportedWriteSpeeds::<Identity, Impl, OFFSET>,
1620 SupportedWriteSpeedDescriptors: SupportedWriteSpeedDescriptors::<Identity, Impl, OFFSET>,
1621 }
1622 }
1623 pub fn matches(iid: &windows::core::GUID) -> bool {
1624 iid == &<IDiscFormat2TrackAtOnce as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IDiscFormat2 as ::windows::core::ComInterface>::IID
1625 }
1626}
1627#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
1628#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1629pub trait IDiscFormat2TrackAtOnceEventArgs_Impl: Sized + IWriteEngine2EventArgs_Impl {
1630 fn CurrentTrackNumber(&self) -> ::windows::core::Result<i32>;
1631 fn CurrentAction(&self) -> ::windows::core::Result<IMAPI_FORMAT2_TAO_WRITE_ACTION>;
1632 fn ElapsedTime(&self) -> ::windows::core::Result<i32>;
1633 fn RemainingTime(&self) -> ::windows::core::Result<i32>;
1634}
1635#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1636impl ::windows::core::RuntimeName for IDiscFormat2TrackAtOnceEventArgs {}
1637#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1638impl IDiscFormat2TrackAtOnceEventArgs_Vtbl {
1639 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnceEventArgs_Impl, const OFFSET: isize>() -> IDiscFormat2TrackAtOnceEventArgs_Vtbl {
1640 unsafe extern "system" fn CurrentTrackNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnceEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1641 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1642 let this = (*this).get_impl();
1643 match this.CurrentTrackNumber() {
1644 ::core::result::Result::Ok(ok__) => {
1645 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1646 ::windows::core::HRESULT(0)
1647 }
1648 ::core::result::Result::Err(err) => err.into(),
1649 }
1650 }
1651 unsafe extern "system" fn CurrentAction<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnceEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_TAO_WRITE_ACTION) -> ::windows::core::HRESULT {
1652 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1653 let this = (*this).get_impl();
1654 match this.CurrentAction() {
1655 ::core::result::Result::Ok(ok__) => {
1656 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1657 ::windows::core::HRESULT(0)
1658 }
1659 ::core::result::Result::Err(err) => err.into(),
1660 }
1661 }
1662 unsafe extern "system" fn ElapsedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnceEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1663 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1664 let this = (*this).get_impl();
1665 match this.ElapsedTime() {
1666 ::core::result::Result::Ok(ok__) => {
1667 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1668 ::windows::core::HRESULT(0)
1669 }
1670 ::core::result::Result::Err(err) => err.into(),
1671 }
1672 }
1673 unsafe extern "system" fn RemainingTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscFormat2TrackAtOnceEventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1674 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1675 let this = (*this).get_impl();
1676 match this.RemainingTime() {
1677 ::core::result::Result::Ok(ok__) => {
1678 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1679 ::windows::core::HRESULT(0)
1680 }
1681 ::core::result::Result::Err(err) => err.into(),
1682 }
1683 }
1684 Self {
1685 base__: IWriteEngine2EventArgs_Vtbl::new::<Identity, Impl, OFFSET>(),
1686 CurrentTrackNumber: CurrentTrackNumber::<Identity, Impl, OFFSET>,
1687 CurrentAction: CurrentAction::<Identity, Impl, OFFSET>,
1688 ElapsedTime: ElapsedTime::<Identity, Impl, OFFSET>,
1689 RemainingTime: RemainingTime::<Identity, Impl, OFFSET>,
1690 }
1691 }
1692 pub fn matches(iid: &windows::core::GUID) -> bool {
1693 iid == &<IDiscFormat2TrackAtOnceEventArgs as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IWriteEngine2EventArgs as ::windows::core::ComInterface>::IID
1694 }
1695}
1696#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
1697pub trait IDiscMaster_Impl: Sized {
1698 fn Open(&self) -> ::windows::core::Result<()>;
1699 fn EnumDiscMasterFormats(&self) -> ::windows::core::Result<IEnumDiscMasterFormats>;
1700 fn GetActiveDiscMasterFormat(&self) -> ::windows::core::Result<::windows::core::GUID>;
1701 fn SetActiveDiscMasterFormat(&self, riid: *const ::windows::core::GUID, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()>;
1702 fn EnumDiscRecorders(&self) -> ::windows::core::Result<IEnumDiscRecorders>;
1703 fn GetActiveDiscRecorder(&self) -> ::windows::core::Result<IDiscRecorder>;
1704 fn SetActiveDiscRecorder(&self, precorder: ::core::option::Option<&IDiscRecorder>) -> ::windows::core::Result<()>;
1705 fn ClearFormatContent(&self) -> ::windows::core::Result<()>;
1706 fn ProgressAdvise(&self, pevents: ::core::option::Option<&IDiscMasterProgressEvents>) -> ::windows::core::Result<usize>;
1707 fn ProgressUnadvise(&self, vcookie: usize) -> ::windows::core::Result<()>;
1708 fn RecordDisc(&self, bsimulate: u8, bejectafterburn: u8) -> ::windows::core::Result<()>;
1709 fn Close(&self) -> ::windows::core::Result<()>;
1710}
1711impl ::windows::core::RuntimeName for IDiscMaster {}
1712impl IDiscMaster_Vtbl {
1713 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>() -> IDiscMaster_Vtbl {
1714 unsafe extern "system" fn Open<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1715 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1716 let this = (*this).get_impl();
1717 this.Open().into()
1718 }
1719 unsafe extern "system" fn EnumDiscMasterFormats<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1720 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1721 let this = (*this).get_impl();
1722 match this.EnumDiscMasterFormats() {
1723 ::core::result::Result::Ok(ok__) => {
1724 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
1725 ::windows::core::HRESULT(0)
1726 }
1727 ::core::result::Result::Err(err) => err.into(),
1728 }
1729 }
1730 unsafe extern "system" fn GetActiveDiscMasterFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpiid: *mut ::windows::core::GUID) -> ::windows::core::HRESULT {
1731 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1732 let this = (*this).get_impl();
1733 match this.GetActiveDiscMasterFormat() {
1734 ::core::result::Result::Ok(ok__) => {
1735 ::core::ptr::write(lpiid, ::core::mem::transmute(ok__));
1736 ::windows::core::HRESULT(0)
1737 }
1738 ::core::result::Result::Err(err) => err.into(),
1739 }
1740 }
1741 unsafe extern "system" fn SetActiveDiscMasterFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows::core::GUID, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1742 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1743 let this = (*this).get_impl();
1744 this.SetActiveDiscMasterFormat(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppunk)).into()
1745 }
1746 unsafe extern "system" fn EnumDiscRecorders<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1747 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1748 let this = (*this).get_impl();
1749 match this.EnumDiscRecorders() {
1750 ::core::result::Result::Ok(ok__) => {
1751 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
1752 ::windows::core::HRESULT(0)
1753 }
1754 ::core::result::Result::Err(err) => err.into(),
1755 }
1756 }
1757 unsafe extern "system" fn GetActiveDiscRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprecorder: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1758 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1759 let this = (*this).get_impl();
1760 match this.GetActiveDiscRecorder() {
1761 ::core::result::Result::Ok(ok__) => {
1762 ::core::ptr::write(pprecorder, ::core::mem::transmute(ok__));
1763 ::windows::core::HRESULT(0)
1764 }
1765 ::core::result::Result::Err(err) => err.into(),
1766 }
1767 }
1768 unsafe extern "system" fn SetActiveDiscRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, precorder: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1769 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1770 let this = (*this).get_impl();
1771 this.SetActiveDiscRecorder(::windows::core::from_raw_borrowed(&precorder)).into()
1772 }
1773 unsafe extern "system" fn ClearFormatContent<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1774 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1775 let this = (*this).get_impl();
1776 this.ClearFormatContent().into()
1777 }
1778 unsafe extern "system" fn ProgressAdvise<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pevents: *mut ::core::ffi::c_void, pvcookie: *mut usize) -> ::windows::core::HRESULT {
1779 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1780 let this = (*this).get_impl();
1781 match this.ProgressAdvise(::windows::core::from_raw_borrowed(&pevents)) {
1782 ::core::result::Result::Ok(ok__) => {
1783 ::core::ptr::write(pvcookie, ::core::mem::transmute(ok__));
1784 ::windows::core::HRESULT(0)
1785 }
1786 ::core::result::Result::Err(err) => err.into(),
1787 }
1788 }
1789 unsafe extern "system" fn ProgressUnadvise<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, vcookie: usize) -> ::windows::core::HRESULT {
1790 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1791 let this = (*this).get_impl();
1792 this.ProgressUnadvise(::core::mem::transmute_copy(&vcookie)).into()
1793 }
1794 unsafe extern "system" fn RecordDisc<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bsimulate: u8, bejectafterburn: u8) -> ::windows::core::HRESULT {
1795 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1796 let this = (*this).get_impl();
1797 this.RecordDisc(::core::mem::transmute_copy(&bsimulate), ::core::mem::transmute_copy(&bejectafterburn)).into()
1798 }
1799 unsafe extern "system" fn Close<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1800 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1801 let this = (*this).get_impl();
1802 this.Close().into()
1803 }
1804 Self {
1805 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1806 Open: Open::<Identity, Impl, OFFSET>,
1807 EnumDiscMasterFormats: EnumDiscMasterFormats::<Identity, Impl, OFFSET>,
1808 GetActiveDiscMasterFormat: GetActiveDiscMasterFormat::<Identity, Impl, OFFSET>,
1809 SetActiveDiscMasterFormat: SetActiveDiscMasterFormat::<Identity, Impl, OFFSET>,
1810 EnumDiscRecorders: EnumDiscRecorders::<Identity, Impl, OFFSET>,
1811 GetActiveDiscRecorder: GetActiveDiscRecorder::<Identity, Impl, OFFSET>,
1812 SetActiveDiscRecorder: SetActiveDiscRecorder::<Identity, Impl, OFFSET>,
1813 ClearFormatContent: ClearFormatContent::<Identity, Impl, OFFSET>,
1814 ProgressAdvise: ProgressAdvise::<Identity, Impl, OFFSET>,
1815 ProgressUnadvise: ProgressUnadvise::<Identity, Impl, OFFSET>,
1816 RecordDisc: RecordDisc::<Identity, Impl, OFFSET>,
1817 Close: Close::<Identity, Impl, OFFSET>,
1818 }
1819 }
1820 pub fn matches(iid: &windows::core::GUID) -> bool {
1821 iid == &<IDiscMaster as ::windows::core::ComInterface>::IID
1822 }
1823}
1824#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
1825#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1826pub trait IDiscMaster2_Impl: Sized + super::super::System::Com::IDispatch_Impl {
1827 fn _NewEnum(&self) -> ::windows::core::Result<super::super::System::Ole::IEnumVARIANT>;
1828 fn get_Item(&self, index: i32) -> ::windows::core::Result<::windows::core::BSTR>;
1829 fn Count(&self) -> ::windows::core::Result<i32>;
1830 fn IsSupportedEnvironment(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
1831}
1832#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1833impl ::windows::core::RuntimeName for IDiscMaster2 {}
1834#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
1835impl IDiscMaster2_Vtbl {
1836 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster2_Impl, const OFFSET: isize>() -> IDiscMaster2_Vtbl {
1837 unsafe extern "system" fn _NewEnum<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1838 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1839 let this = (*this).get_impl();
1840 match this._NewEnum() {
1841 ::core::result::Result::Ok(ok__) => {
1842 ::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
1843 ::windows::core::HRESULT(0)
1844 }
1845 ::core::result::Result::Err(err) => err.into(),
1846 }
1847 }
1848 unsafe extern "system" fn get_Item<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
1849 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1850 let this = (*this).get_impl();
1851 match this.get_Item(::core::mem::transmute_copy(&index)) {
1852 ::core::result::Result::Ok(ok__) => {
1853 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1854 ::windows::core::HRESULT(0)
1855 }
1856 ::core::result::Result::Err(err) => err.into(),
1857 }
1858 }
1859 unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
1860 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1861 let this = (*this).get_impl();
1862 match this.Count() {
1863 ::core::result::Result::Ok(ok__) => {
1864 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1865 ::windows::core::HRESULT(0)
1866 }
1867 ::core::result::Result::Err(err) => err.into(),
1868 }
1869 }
1870 unsafe extern "system" fn IsSupportedEnvironment<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMaster2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
1871 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1872 let this = (*this).get_impl();
1873 match this.IsSupportedEnvironment() {
1874 ::core::result::Result::Ok(ok__) => {
1875 ::core::ptr::write(value, ::core::mem::transmute(ok__));
1876 ::windows::core::HRESULT(0)
1877 }
1878 ::core::result::Result::Err(err) => err.into(),
1879 }
1880 }
1881 Self {
1882 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
1883 _NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
1884 get_Item: get_Item::<Identity, Impl, OFFSET>,
1885 Count: Count::<Identity, Impl, OFFSET>,
1886 IsSupportedEnvironment: IsSupportedEnvironment::<Identity, Impl, OFFSET>,
1887 }
1888 }
1889 pub fn matches(iid: &windows::core::GUID) -> bool {
1890 iid == &<IDiscMaster2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
1891 }
1892}
1893#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
1894pub trait IDiscMasterProgressEvents_Impl: Sized {
1895 fn QueryCancel(&self) -> ::windows::core::Result<u8>;
1896 fn NotifyPnPActivity(&self) -> ::windows::core::Result<()>;
1897 fn NotifyAddProgress(&self, ncompletedsteps: i32, ntotalsteps: i32) -> ::windows::core::Result<()>;
1898 fn NotifyBlockProgress(&self, ncompleted: i32, ntotal: i32) -> ::windows::core::Result<()>;
1899 fn NotifyTrackProgress(&self, ncurrenttrack: i32, ntotaltracks: i32) -> ::windows::core::Result<()>;
1900 fn NotifyPreparingBurn(&self, nestimatedseconds: i32) -> ::windows::core::Result<()>;
1901 fn NotifyClosingDisc(&self, nestimatedseconds: i32) -> ::windows::core::Result<()>;
1902 fn NotifyBurnComplete(&self, status: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
1903 fn NotifyEraseComplete(&self, status: ::windows::core::HRESULT) -> ::windows::core::Result<()>;
1904}
1905impl ::windows::core::RuntimeName for IDiscMasterProgressEvents {}
1906impl IDiscMasterProgressEvents_Vtbl {
1907 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>() -> IDiscMasterProgressEvents_Vtbl {
1908 unsafe extern "system" fn QueryCancel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbcancel: *mut u8) -> ::windows::core::HRESULT {
1909 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1910 let this = (*this).get_impl();
1911 match this.QueryCancel() {
1912 ::core::result::Result::Ok(ok__) => {
1913 ::core::ptr::write(pbcancel, ::core::mem::transmute(ok__));
1914 ::windows::core::HRESULT(0)
1915 }
1916 ::core::result::Result::Err(err) => err.into(),
1917 }
1918 }
1919 unsafe extern "system" fn NotifyPnPActivity<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
1920 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1921 let this = (*this).get_impl();
1922 this.NotifyPnPActivity().into()
1923 }
1924 unsafe extern "system" fn NotifyAddProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ncompletedsteps: i32, ntotalsteps: i32) -> ::windows::core::HRESULT {
1925 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1926 let this = (*this).get_impl();
1927 this.NotifyAddProgress(::core::mem::transmute_copy(&ncompletedsteps), ::core::mem::transmute_copy(&ntotalsteps)).into()
1928 }
1929 unsafe extern "system" fn NotifyBlockProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ncompleted: i32, ntotal: i32) -> ::windows::core::HRESULT {
1930 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1931 let this = (*this).get_impl();
1932 this.NotifyBlockProgress(::core::mem::transmute_copy(&ncompleted), ::core::mem::transmute_copy(&ntotal)).into()
1933 }
1934 unsafe extern "system" fn NotifyTrackProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ncurrenttrack: i32, ntotaltracks: i32) -> ::windows::core::HRESULT {
1935 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1936 let this = (*this).get_impl();
1937 this.NotifyTrackProgress(::core::mem::transmute_copy(&ncurrenttrack), ::core::mem::transmute_copy(&ntotaltracks)).into()
1938 }
1939 unsafe extern "system" fn NotifyPreparingBurn<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nestimatedseconds: i32) -> ::windows::core::HRESULT {
1940 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1941 let this = (*this).get_impl();
1942 this.NotifyPreparingBurn(::core::mem::transmute_copy(&nestimatedseconds)).into()
1943 }
1944 unsafe extern "system" fn NotifyClosingDisc<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nestimatedseconds: i32) -> ::windows::core::HRESULT {
1945 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1946 let this = (*this).get_impl();
1947 this.NotifyClosingDisc(::core::mem::transmute_copy(&nestimatedseconds)).into()
1948 }
1949 unsafe extern "system" fn NotifyBurnComplete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
1950 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1951 let this = (*this).get_impl();
1952 this.NotifyBurnComplete(::core::mem::transmute_copy(&status)).into()
1953 }
1954 unsafe extern "system" fn NotifyEraseComplete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscMasterProgressEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, status: ::windows::core::HRESULT) -> ::windows::core::HRESULT {
1955 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
1956 let this = (*this).get_impl();
1957 this.NotifyEraseComplete(::core::mem::transmute_copy(&status)).into()
1958 }
1959 Self {
1960 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
1961 QueryCancel: QueryCancel::<Identity, Impl, OFFSET>,
1962 NotifyPnPActivity: NotifyPnPActivity::<Identity, Impl, OFFSET>,
1963 NotifyAddProgress: NotifyAddProgress::<Identity, Impl, OFFSET>,
1964 NotifyBlockProgress: NotifyBlockProgress::<Identity, Impl, OFFSET>,
1965 NotifyTrackProgress: NotifyTrackProgress::<Identity, Impl, OFFSET>,
1966 NotifyPreparingBurn: NotifyPreparingBurn::<Identity, Impl, OFFSET>,
1967 NotifyClosingDisc: NotifyClosingDisc::<Identity, Impl, OFFSET>,
1968 NotifyBurnComplete: NotifyBurnComplete::<Identity, Impl, OFFSET>,
1969 NotifyEraseComplete: NotifyEraseComplete::<Identity, Impl, OFFSET>,
1970 }
1971 }
1972 pub fn matches(iid: &windows::core::GUID) -> bool {
1973 iid == &<IDiscMasterProgressEvents as ::windows::core::ComInterface>::IID
1974 }
1975}
1976#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
1977#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1978pub trait IDiscRecorder_Impl: Sized {
1979 fn Init(&self, pbyuniqueid: *const u8, nulidsize: u32, nuldrivenumber: u32) -> ::windows::core::Result<()>;
1980 fn GetRecorderGUID(&self, pbyuniqueid: *mut u8, ulbuffersize: u32, pulreturnsizerequired: *mut u32) -> ::windows::core::Result<()>;
1981 fn GetRecorderType(&self) -> ::windows::core::Result<RECORDER_TYPES>;
1982 fn GetDisplayNames(&self, pbstrvendorid: *mut ::windows::core::BSTR, pbstrproductid: *mut ::windows::core::BSTR, pbstrrevision: *mut ::windows::core::BSTR) -> ::windows::core::Result<()>;
1983 fn GetBasePnPID(&self) -> ::windows::core::Result<::windows::core::BSTR>;
1984 fn GetPath(&self) -> ::windows::core::Result<::windows::core::BSTR>;
1985 fn GetRecorderProperties(&self) -> ::windows::core::Result<super::super::System::Com::StructuredStorage::IPropertyStorage>;
1986 fn SetRecorderProperties(&self, ppropstg: ::core::option::Option<&super::super::System::Com::StructuredStorage::IPropertyStorage>) -> ::windows::core::Result<()>;
1987 fn GetRecorderState(&self) -> ::windows::core::Result<DISC_RECORDER_STATE_FLAGS>;
1988 fn OpenExclusive(&self) -> ::windows::core::Result<()>;
1989 fn QueryMediaType(&self, fmediatype: *mut MEDIA_TYPES, fmediaflags: *mut MEDIA_FLAGS) -> ::windows::core::Result<()>;
1990 fn QueryMediaInfo(&self, pbsessions: *mut u8, pblasttrack: *mut u8, ulstartaddress: *mut u32, ulnextwritable: *mut u32, ulfreeblocks: *mut u32) -> ::windows::core::Result<()>;
1991 fn Eject(&self) -> ::windows::core::Result<()>;
1992 fn Erase(&self, bfullerase: u8) -> ::windows::core::Result<()>;
1993 fn Close(&self) -> ::windows::core::Result<()>;
1994}
1995#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1996impl ::windows::core::RuntimeName for IDiscRecorder {}
1997#[cfg(feature = "Win32_System_Com_StructuredStorage")]
1998impl IDiscRecorder_Vtbl {
1999 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>() -> IDiscRecorder_Vtbl {
2000 unsafe extern "system" fn Init<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbyuniqueid: *const u8, nulidsize: u32, nuldrivenumber: u32) -> ::windows::core::HRESULT {
2001 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2002 let this = (*this).get_impl();
2003 this.Init(::core::mem::transmute_copy(&pbyuniqueid), ::core::mem::transmute_copy(&nulidsize), ::core::mem::transmute_copy(&nuldrivenumber)).into()
2004 }
2005 unsafe extern "system" fn GetRecorderGUID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbyuniqueid: *mut u8, ulbuffersize: u32, pulreturnsizerequired: *mut u32) -> ::windows::core::HRESULT {
2006 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2007 let this = (*this).get_impl();
2008 this.GetRecorderGUID(::core::mem::transmute_copy(&pbyuniqueid), ::core::mem::transmute_copy(&ulbuffersize), ::core::mem::transmute_copy(&pulreturnsizerequired)).into()
2009 }
2010 unsafe extern "system" fn GetRecorderType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ftypecode: *mut RECORDER_TYPES) -> ::windows::core::HRESULT {
2011 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2012 let this = (*this).get_impl();
2013 match this.GetRecorderType() {
2014 ::core::result::Result::Ok(ok__) => {
2015 ::core::ptr::write(ftypecode, ::core::mem::transmute(ok__));
2016 ::windows::core::HRESULT(0)
2017 }
2018 ::core::result::Result::Err(err) => err.into(),
2019 }
2020 }
2021 unsafe extern "system" fn GetDisplayNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrvendorid: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>, pbstrproductid: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>, pbstrrevision: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2022 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2023 let this = (*this).get_impl();
2024 this.GetDisplayNames(::core::mem::transmute_copy(&pbstrvendorid), ::core::mem::transmute_copy(&pbstrproductid), ::core::mem::transmute_copy(&pbstrrevision)).into()
2025 }
2026 unsafe extern "system" fn GetBasePnPID<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrbasepnpid: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2027 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2028 let this = (*this).get_impl();
2029 match this.GetBasePnPID() {
2030 ::core::result::Result::Ok(ok__) => {
2031 ::core::ptr::write(pbstrbasepnpid, ::core::mem::transmute(ok__));
2032 ::windows::core::HRESULT(0)
2033 }
2034 ::core::result::Result::Err(err) => err.into(),
2035 }
2036 }
2037 unsafe extern "system" fn GetPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrpath: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2038 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2039 let this = (*this).get_impl();
2040 match this.GetPath() {
2041 ::core::result::Result::Ok(ok__) => {
2042 ::core::ptr::write(pbstrpath, ::core::mem::transmute(ok__));
2043 ::windows::core::HRESULT(0)
2044 }
2045 ::core::result::Result::Err(err) => err.into(),
2046 }
2047 }
2048 unsafe extern "system" fn GetRecorderProperties<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pppropstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2049 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2050 let this = (*this).get_impl();
2051 match this.GetRecorderProperties() {
2052 ::core::result::Result::Ok(ok__) => {
2053 ::core::ptr::write(pppropstg, ::core::mem::transmute(ok__));
2054 ::windows::core::HRESULT(0)
2055 }
2056 ::core::result::Result::Err(err) => err.into(),
2057 }
2058 }
2059 unsafe extern "system" fn SetRecorderProperties<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropstg: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2060 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2061 let this = (*this).get_impl();
2062 this.SetRecorderProperties(::windows::core::from_raw_borrowed(&ppropstg)).into()
2063 }
2064 unsafe extern "system" fn GetRecorderState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puldevstateflags: *mut DISC_RECORDER_STATE_FLAGS) -> ::windows::core::HRESULT {
2065 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2066 let this = (*this).get_impl();
2067 match this.GetRecorderState() {
2068 ::core::result::Result::Ok(ok__) => {
2069 ::core::ptr::write(puldevstateflags, ::core::mem::transmute(ok__));
2070 ::windows::core::HRESULT(0)
2071 }
2072 ::core::result::Result::Err(err) => err.into(),
2073 }
2074 }
2075 unsafe extern "system" fn OpenExclusive<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2076 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2077 let this = (*this).get_impl();
2078 this.OpenExclusive().into()
2079 }
2080 unsafe extern "system" fn QueryMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmediatype: *mut MEDIA_TYPES, fmediaflags: *mut MEDIA_FLAGS) -> ::windows::core::HRESULT {
2081 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2082 let this = (*this).get_impl();
2083 this.QueryMediaType(::core::mem::transmute_copy(&fmediatype), ::core::mem::transmute_copy(&fmediaflags)).into()
2084 }
2085 unsafe extern "system" fn QueryMediaInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbsessions: *mut u8, pblasttrack: *mut u8, ulstartaddress: *mut u32, ulnextwritable: *mut u32, ulfreeblocks: *mut u32) -> ::windows::core::HRESULT {
2086 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2087 let this = (*this).get_impl();
2088 this.QueryMediaInfo(::core::mem::transmute_copy(&pbsessions), ::core::mem::transmute_copy(&pblasttrack), ::core::mem::transmute_copy(&ulstartaddress), ::core::mem::transmute_copy(&ulnextwritable), ::core::mem::transmute_copy(&ulfreeblocks)).into()
2089 }
2090 unsafe extern "system" fn Eject<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2091 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2092 let this = (*this).get_impl();
2093 this.Eject().into()
2094 }
2095 unsafe extern "system" fn Erase<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bfullerase: u8) -> ::windows::core::HRESULT {
2096 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2097 let this = (*this).get_impl();
2098 this.Erase(::core::mem::transmute_copy(&bfullerase)).into()
2099 }
2100 unsafe extern "system" fn Close<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2101 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2102 let this = (*this).get_impl();
2103 this.Close().into()
2104 }
2105 Self {
2106 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2107 Init: Init::<Identity, Impl, OFFSET>,
2108 GetRecorderGUID: GetRecorderGUID::<Identity, Impl, OFFSET>,
2109 GetRecorderType: GetRecorderType::<Identity, Impl, OFFSET>,
2110 GetDisplayNames: GetDisplayNames::<Identity, Impl, OFFSET>,
2111 GetBasePnPID: GetBasePnPID::<Identity, Impl, OFFSET>,
2112 GetPath: GetPath::<Identity, Impl, OFFSET>,
2113 GetRecorderProperties: GetRecorderProperties::<Identity, Impl, OFFSET>,
2114 SetRecorderProperties: SetRecorderProperties::<Identity, Impl, OFFSET>,
2115 GetRecorderState: GetRecorderState::<Identity, Impl, OFFSET>,
2116 OpenExclusive: OpenExclusive::<Identity, Impl, OFFSET>,
2117 QueryMediaType: QueryMediaType::<Identity, Impl, OFFSET>,
2118 QueryMediaInfo: QueryMediaInfo::<Identity, Impl, OFFSET>,
2119 Eject: Eject::<Identity, Impl, OFFSET>,
2120 Erase: Erase::<Identity, Impl, OFFSET>,
2121 Close: Close::<Identity, Impl, OFFSET>,
2122 }
2123 }
2124 pub fn matches(iid: &windows::core::GUID) -> bool {
2125 iid == &<IDiscRecorder as ::windows::core::ComInterface>::IID
2126 }
2127}
2128#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
2129#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2130pub trait IDiscRecorder2_Impl: Sized + super::super::System::Com::IDispatch_Impl {
2131 fn EjectMedia(&self) -> ::windows::core::Result<()>;
2132 fn CloseTray(&self) -> ::windows::core::Result<()>;
2133 fn AcquireExclusiveAccess(&self, force: super::super::Foundation::VARIANT_BOOL, __midl__idiscrecorder20000: &::windows::core::BSTR) -> ::windows::core::Result<()>;
2134 fn ReleaseExclusiveAccess(&self) -> ::windows::core::Result<()>;
2135 fn DisableMcn(&self) -> ::windows::core::Result<()>;
2136 fn EnableMcn(&self) -> ::windows::core::Result<()>;
2137 fn InitializeDiscRecorder(&self, recorderuniqueid: &::windows::core::BSTR) -> ::windows::core::Result<()>;
2138 fn ActiveDiscRecorder(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2139 fn VendorId(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2140 fn ProductId(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2141 fn ProductRevision(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2142 fn VolumeName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2143 fn VolumePathNames(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2144 fn DeviceCanLoadMedia(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
2145 fn LegacyDeviceNumber(&self) -> ::windows::core::Result<i32>;
2146 fn SupportedFeaturePages(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2147 fn CurrentFeaturePages(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2148 fn SupportedProfiles(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2149 fn CurrentProfiles(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2150 fn SupportedModePages(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2151 fn ExclusiveAccessOwner(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2152}
2153#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2154impl ::windows::core::RuntimeName for IDiscRecorder2 {}
2155#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2156impl IDiscRecorder2_Vtbl {
2157 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>() -> IDiscRecorder2_Vtbl {
2158 unsafe extern "system" fn EjectMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2159 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2160 let this = (*this).get_impl();
2161 this.EjectMedia().into()
2162 }
2163 unsafe extern "system" fn CloseTray<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2164 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2165 let this = (*this).get_impl();
2166 this.CloseTray().into()
2167 }
2168 unsafe extern "system" fn AcquireExclusiveAccess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, force: super::super::Foundation::VARIANT_BOOL, __midl__idiscrecorder20000: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2169 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2170 let this = (*this).get_impl();
2171 this.AcquireExclusiveAccess(::core::mem::transmute_copy(&force), ::core::mem::transmute(&__midl__idiscrecorder20000)).into()
2172 }
2173 unsafe extern "system" fn ReleaseExclusiveAccess<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2174 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2175 let this = (*this).get_impl();
2176 this.ReleaseExclusiveAccess().into()
2177 }
2178 unsafe extern "system" fn DisableMcn<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2179 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2180 let this = (*this).get_impl();
2181 this.DisableMcn().into()
2182 }
2183 unsafe extern "system" fn EnableMcn<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2184 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2185 let this = (*this).get_impl();
2186 this.EnableMcn().into()
2187 }
2188 unsafe extern "system" fn InitializeDiscRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, recorderuniqueid: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2189 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2190 let this = (*this).get_impl();
2191 this.InitializeDiscRecorder(::core::mem::transmute(&recorderuniqueid)).into()
2192 }
2193 unsafe extern "system" fn ActiveDiscRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2194 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2195 let this = (*this).get_impl();
2196 match this.ActiveDiscRecorder() {
2197 ::core::result::Result::Ok(ok__) => {
2198 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2199 ::windows::core::HRESULT(0)
2200 }
2201 ::core::result::Result::Err(err) => err.into(),
2202 }
2203 }
2204 unsafe extern "system" fn VendorId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2205 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2206 let this = (*this).get_impl();
2207 match this.VendorId() {
2208 ::core::result::Result::Ok(ok__) => {
2209 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2210 ::windows::core::HRESULT(0)
2211 }
2212 ::core::result::Result::Err(err) => err.into(),
2213 }
2214 }
2215 unsafe extern "system" fn ProductId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2216 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2217 let this = (*this).get_impl();
2218 match this.ProductId() {
2219 ::core::result::Result::Ok(ok__) => {
2220 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2221 ::windows::core::HRESULT(0)
2222 }
2223 ::core::result::Result::Err(err) => err.into(),
2224 }
2225 }
2226 unsafe extern "system" fn ProductRevision<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2227 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2228 let this = (*this).get_impl();
2229 match this.ProductRevision() {
2230 ::core::result::Result::Ok(ok__) => {
2231 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2232 ::windows::core::HRESULT(0)
2233 }
2234 ::core::result::Result::Err(err) => err.into(),
2235 }
2236 }
2237 unsafe extern "system" fn VolumeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2238 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2239 let this = (*this).get_impl();
2240 match this.VolumeName() {
2241 ::core::result::Result::Ok(ok__) => {
2242 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2243 ::windows::core::HRESULT(0)
2244 }
2245 ::core::result::Result::Err(err) => err.into(),
2246 }
2247 }
2248 unsafe extern "system" fn VolumePathNames<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2249 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2250 let this = (*this).get_impl();
2251 match this.VolumePathNames() {
2252 ::core::result::Result::Ok(ok__) => {
2253 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2254 ::windows::core::HRESULT(0)
2255 }
2256 ::core::result::Result::Err(err) => err.into(),
2257 }
2258 }
2259 unsafe extern "system" fn DeviceCanLoadMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
2260 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2261 let this = (*this).get_impl();
2262 match this.DeviceCanLoadMedia() {
2263 ::core::result::Result::Ok(ok__) => {
2264 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2265 ::windows::core::HRESULT(0)
2266 }
2267 ::core::result::Result::Err(err) => err.into(),
2268 }
2269 }
2270 unsafe extern "system" fn LegacyDeviceNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, legacydevicenumber: *mut i32) -> ::windows::core::HRESULT {
2271 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2272 let this = (*this).get_impl();
2273 match this.LegacyDeviceNumber() {
2274 ::core::result::Result::Ok(ok__) => {
2275 ::core::ptr::write(legacydevicenumber, ::core::mem::transmute(ok__));
2276 ::windows::core::HRESULT(0)
2277 }
2278 ::core::result::Result::Err(err) => err.into(),
2279 }
2280 }
2281 unsafe extern "system" fn SupportedFeaturePages<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2282 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2283 let this = (*this).get_impl();
2284 match this.SupportedFeaturePages() {
2285 ::core::result::Result::Ok(ok__) => {
2286 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2287 ::windows::core::HRESULT(0)
2288 }
2289 ::core::result::Result::Err(err) => err.into(),
2290 }
2291 }
2292 unsafe extern "system" fn CurrentFeaturePages<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2293 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2294 let this = (*this).get_impl();
2295 match this.CurrentFeaturePages() {
2296 ::core::result::Result::Ok(ok__) => {
2297 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2298 ::windows::core::HRESULT(0)
2299 }
2300 ::core::result::Result::Err(err) => err.into(),
2301 }
2302 }
2303 unsafe extern "system" fn SupportedProfiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2304 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2305 let this = (*this).get_impl();
2306 match this.SupportedProfiles() {
2307 ::core::result::Result::Ok(ok__) => {
2308 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2309 ::windows::core::HRESULT(0)
2310 }
2311 ::core::result::Result::Err(err) => err.into(),
2312 }
2313 }
2314 unsafe extern "system" fn CurrentProfiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2315 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2316 let this = (*this).get_impl();
2317 match this.CurrentProfiles() {
2318 ::core::result::Result::Ok(ok__) => {
2319 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2320 ::windows::core::HRESULT(0)
2321 }
2322 ::core::result::Result::Err(err) => err.into(),
2323 }
2324 }
2325 unsafe extern "system" fn SupportedModePages<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
2326 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2327 let this = (*this).get_impl();
2328 match this.SupportedModePages() {
2329 ::core::result::Result::Ok(ok__) => {
2330 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2331 ::windows::core::HRESULT(0)
2332 }
2333 ::core::result::Result::Err(err) => err.into(),
2334 }
2335 }
2336 unsafe extern "system" fn ExclusiveAccessOwner<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2337 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2338 let this = (*this).get_impl();
2339 match this.ExclusiveAccessOwner() {
2340 ::core::result::Result::Ok(ok__) => {
2341 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2342 ::windows::core::HRESULT(0)
2343 }
2344 ::core::result::Result::Err(err) => err.into(),
2345 }
2346 }
2347 Self {
2348 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
2349 EjectMedia: EjectMedia::<Identity, Impl, OFFSET>,
2350 CloseTray: CloseTray::<Identity, Impl, OFFSET>,
2351 AcquireExclusiveAccess: AcquireExclusiveAccess::<Identity, Impl, OFFSET>,
2352 ReleaseExclusiveAccess: ReleaseExclusiveAccess::<Identity, Impl, OFFSET>,
2353 DisableMcn: DisableMcn::<Identity, Impl, OFFSET>,
2354 EnableMcn: EnableMcn::<Identity, Impl, OFFSET>,
2355 InitializeDiscRecorder: InitializeDiscRecorder::<Identity, Impl, OFFSET>,
2356 ActiveDiscRecorder: ActiveDiscRecorder::<Identity, Impl, OFFSET>,
2357 VendorId: VendorId::<Identity, Impl, OFFSET>,
2358 ProductId: ProductId::<Identity, Impl, OFFSET>,
2359 ProductRevision: ProductRevision::<Identity, Impl, OFFSET>,
2360 VolumeName: VolumeName::<Identity, Impl, OFFSET>,
2361 VolumePathNames: VolumePathNames::<Identity, Impl, OFFSET>,
2362 DeviceCanLoadMedia: DeviceCanLoadMedia::<Identity, Impl, OFFSET>,
2363 LegacyDeviceNumber: LegacyDeviceNumber::<Identity, Impl, OFFSET>,
2364 SupportedFeaturePages: SupportedFeaturePages::<Identity, Impl, OFFSET>,
2365 CurrentFeaturePages: CurrentFeaturePages::<Identity, Impl, OFFSET>,
2366 SupportedProfiles: SupportedProfiles::<Identity, Impl, OFFSET>,
2367 CurrentProfiles: CurrentProfiles::<Identity, Impl, OFFSET>,
2368 SupportedModePages: SupportedModePages::<Identity, Impl, OFFSET>,
2369 ExclusiveAccessOwner: ExclusiveAccessOwner::<Identity, Impl, OFFSET>,
2370 }
2371 }
2372 pub fn matches(iid: &windows::core::GUID) -> bool {
2373 iid == &<IDiscRecorder2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
2374 }
2375}
2376#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
2377#[cfg(feature = "Win32_Foundation")]
2378pub trait IDiscRecorder2Ex_Impl: Sized {
2379 fn SendCommandNoData(&self, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32) -> ::windows::core::Result<()>;
2380 fn SendCommandSendDataToDevice(&self, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32, buffer: *const u8, buffersize: u32) -> ::windows::core::Result<()>;
2381 fn SendCommandGetDataFromDevice(&self, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32, buffer: *mut u8, buffersize: u32, bufferfetched: *mut u32) -> ::windows::core::Result<()>;
2382 fn ReadDvdStructure(&self, format: u32, address: u32, layer: u32, agid: u32, data: *mut *mut u8, count: *mut u32) -> ::windows::core::Result<()>;
2383 fn SendDvdStructure(&self, format: u32, data: *const u8, count: u32) -> ::windows::core::Result<()>;
2384 fn GetAdapterDescriptor(&self, data: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2385 fn GetDeviceDescriptor(&self, data: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2386 fn GetDiscInformation(&self, discinformation: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2387 fn GetTrackInformation(&self, address: u32, addresstype: IMAPI_READ_TRACK_ADDRESS_TYPE, trackinformation: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2388 fn GetFeaturePage(&self, requestedfeature: IMAPI_FEATURE_PAGE_TYPE, currentfeatureonly: super::super::Foundation::BOOLEAN, featuredata: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2389 fn GetModePage(&self, requestedmodepage: IMAPI_MODE_PAGE_TYPE, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagedata: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::Result<()>;
2390 fn SetModePage(&self, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, data: *const u8, bytesize: u32) -> ::windows::core::Result<()>;
2391 fn GetSupportedFeaturePages(&self, currentfeatureonly: super::super::Foundation::BOOLEAN, featuredata: *mut *mut IMAPI_FEATURE_PAGE_TYPE, bytesize: *mut u32) -> ::windows::core::Result<()>;
2392 fn GetSupportedProfiles(&self, currentonly: super::super::Foundation::BOOLEAN, profiletypes: *mut *mut IMAPI_PROFILE_TYPE, validprofiles: *mut u32) -> ::windows::core::Result<()>;
2393 fn GetSupportedModePages(&self, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagetypes: *mut *mut IMAPI_MODE_PAGE_TYPE, validpages: *mut u32) -> ::windows::core::Result<()>;
2394 fn GetByteAlignmentMask(&self) -> ::windows::core::Result<u32>;
2395 fn GetMaximumNonPageAlignedTransferSize(&self) -> ::windows::core::Result<u32>;
2396 fn GetMaximumPageAlignedTransferSize(&self) -> ::windows::core::Result<u32>;
2397}
2398#[cfg(feature = "Win32_Foundation")]
2399impl ::windows::core::RuntimeName for IDiscRecorder2Ex {}
2400#[cfg(feature = "Win32_Foundation")]
2401impl IDiscRecorder2Ex_Vtbl {
2402 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>() -> IDiscRecorder2Ex_Vtbl {
2403 unsafe extern "system" fn SendCommandNoData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32) -> ::windows::core::HRESULT {
2404 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2405 let this = (*this).get_impl();
2406 this.SendCommandNoData(::core::mem::transmute_copy(&cdb), ::core::mem::transmute_copy(&cdbsize), ::core::mem::transmute_copy(&sensebuffer), ::core::mem::transmute_copy(&timeout)).into()
2407 }
2408 unsafe extern "system" fn SendCommandSendDataToDevice<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32, buffer: *const u8, buffersize: u32) -> ::windows::core::HRESULT {
2409 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2410 let this = (*this).get_impl();
2411 this.SendCommandSendDataToDevice(::core::mem::transmute_copy(&cdb), ::core::mem::transmute_copy(&cdbsize), ::core::mem::transmute_copy(&sensebuffer), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize)).into()
2412 }
2413 unsafe extern "system" fn SendCommandGetDataFromDevice<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cdb: *const u8, cdbsize: u32, sensebuffer: *mut u8, timeout: u32, buffer: *mut u8, buffersize: u32, bufferfetched: *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.SendCommandGetDataFromDevice(::core::mem::transmute_copy(&cdb), ::core::mem::transmute_copy(&cdbsize), ::core::mem::transmute_copy(&sensebuffer), ::core::mem::transmute_copy(&timeout), ::core::mem::transmute_copy(&buffer), ::core::mem::transmute_copy(&buffersize), ::core::mem::transmute_copy(&bufferfetched)).into()
2417 }
2418 unsafe extern "system" fn ReadDvdStructure<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, format: u32, address: u32, layer: u32, agid: u32, data: *mut *mut u8, count: *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.ReadDvdStructure(::core::mem::transmute_copy(&format), ::core::mem::transmute_copy(&address), ::core::mem::transmute_copy(&layer), ::core::mem::transmute_copy(&agid), ::core::mem::transmute_copy(&data), ::core::mem::transmute_copy(&count)).into()
2422 }
2423 unsafe extern "system" fn SendDvdStructure<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, format: u32, data: *const u8, count: u32) -> ::windows::core::HRESULT {
2424 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2425 let this = (*this).get_impl();
2426 this.SendDvdStructure(::core::mem::transmute_copy(&format), ::core::mem::transmute_copy(&data), ::core::mem::transmute_copy(&count)).into()
2427 }
2428 unsafe extern "system" fn GetAdapterDescriptor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2429 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2430 let this = (*this).get_impl();
2431 this.GetAdapterDescriptor(::core::mem::transmute_copy(&data), ::core::mem::transmute_copy(&bytesize)).into()
2432 }
2433 unsafe extern "system" fn GetDeviceDescriptor<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2434 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2435 let this = (*this).get_impl();
2436 this.GetDeviceDescriptor(::core::mem::transmute_copy(&data), ::core::mem::transmute_copy(&bytesize)).into()
2437 }
2438 unsafe extern "system" fn GetDiscInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, discinformation: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2439 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2440 let this = (*this).get_impl();
2441 this.GetDiscInformation(::core::mem::transmute_copy(&discinformation), ::core::mem::transmute_copy(&bytesize)).into()
2442 }
2443 unsafe extern "system" fn GetTrackInformation<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, address: u32, addresstype: IMAPI_READ_TRACK_ADDRESS_TYPE, trackinformation: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2444 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2445 let this = (*this).get_impl();
2446 this.GetTrackInformation(::core::mem::transmute_copy(&address), ::core::mem::transmute_copy(&addresstype), ::core::mem::transmute_copy(&trackinformation), ::core::mem::transmute_copy(&bytesize)).into()
2447 }
2448 unsafe extern "system" fn GetFeaturePage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestedfeature: IMAPI_FEATURE_PAGE_TYPE, currentfeatureonly: super::super::Foundation::BOOLEAN, featuredata: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2449 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2450 let this = (*this).get_impl();
2451 this.GetFeaturePage(::core::mem::transmute_copy(&requestedfeature), ::core::mem::transmute_copy(&currentfeatureonly), ::core::mem::transmute_copy(&featuredata), ::core::mem::transmute_copy(&bytesize)).into()
2452 }
2453 unsafe extern "system" fn GetModePage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requestedmodepage: IMAPI_MODE_PAGE_TYPE, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagedata: *mut *mut u8, bytesize: *mut u32) -> ::windows::core::HRESULT {
2454 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2455 let this = (*this).get_impl();
2456 this.GetModePage(::core::mem::transmute_copy(&requestedmodepage), ::core::mem::transmute_copy(&requesttype), ::core::mem::transmute_copy(&modepagedata), ::core::mem::transmute_copy(&bytesize)).into()
2457 }
2458 unsafe extern "system" fn SetModePage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, data: *const u8, bytesize: u32) -> ::windows::core::HRESULT {
2459 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2460 let this = (*this).get_impl();
2461 this.SetModePage(::core::mem::transmute_copy(&requesttype), ::core::mem::transmute_copy(&data), ::core::mem::transmute_copy(&bytesize)).into()
2462 }
2463 unsafe extern "system" fn GetSupportedFeaturePages<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, currentfeatureonly: super::super::Foundation::BOOLEAN, featuredata: *mut *mut IMAPI_FEATURE_PAGE_TYPE, bytesize: *mut u32) -> ::windows::core::HRESULT {
2464 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2465 let this = (*this).get_impl();
2466 this.GetSupportedFeaturePages(::core::mem::transmute_copy(&currentfeatureonly), ::core::mem::transmute_copy(&featuredata), ::core::mem::transmute_copy(&bytesize)).into()
2467 }
2468 unsafe extern "system" fn GetSupportedProfiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, currentonly: super::super::Foundation::BOOLEAN, profiletypes: *mut *mut IMAPI_PROFILE_TYPE, validprofiles: *mut u32) -> ::windows::core::HRESULT {
2469 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2470 let this = (*this).get_impl();
2471 this.GetSupportedProfiles(::core::mem::transmute_copy(&currentonly), ::core::mem::transmute_copy(&profiletypes), ::core::mem::transmute_copy(&validprofiles)).into()
2472 }
2473 unsafe extern "system" fn GetSupportedModePages<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, requesttype: IMAPI_MODE_PAGE_REQUEST_TYPE, modepagetypes: *mut *mut IMAPI_MODE_PAGE_TYPE, validpages: *mut u32) -> ::windows::core::HRESULT {
2474 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2475 let this = (*this).get_impl();
2476 this.GetSupportedModePages(::core::mem::transmute_copy(&requesttype), ::core::mem::transmute_copy(&modepagetypes), ::core::mem::transmute_copy(&validpages)).into()
2477 }
2478 unsafe extern "system" fn GetByteAlignmentMask<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT {
2479 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2480 let this = (*this).get_impl();
2481 match this.GetByteAlignmentMask() {
2482 ::core::result::Result::Ok(ok__) => {
2483 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2484 ::windows::core::HRESULT(0)
2485 }
2486 ::core::result::Result::Err(err) => err.into(),
2487 }
2488 }
2489 unsafe extern "system" fn GetMaximumNonPageAlignedTransferSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT {
2490 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2491 let this = (*this).get_impl();
2492 match this.GetMaximumNonPageAlignedTransferSize() {
2493 ::core::result::Result::Ok(ok__) => {
2494 ::core::ptr::write(value, ::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 GetMaximumPageAlignedTransferSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IDiscRecorder2Ex_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT {
2501 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2502 let this = (*this).get_impl();
2503 match this.GetMaximumPageAlignedTransferSize() {
2504 ::core::result::Result::Ok(ok__) => {
2505 ::core::ptr::write(value, ::core::mem::transmute(ok__));
2506 ::windows::core::HRESULT(0)
2507 }
2508 ::core::result::Result::Err(err) => err.into(),
2509 }
2510 }
2511 Self {
2512 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2513 SendCommandNoData: SendCommandNoData::<Identity, Impl, OFFSET>,
2514 SendCommandSendDataToDevice: SendCommandSendDataToDevice::<Identity, Impl, OFFSET>,
2515 SendCommandGetDataFromDevice: SendCommandGetDataFromDevice::<Identity, Impl, OFFSET>,
2516 ReadDvdStructure: ReadDvdStructure::<Identity, Impl, OFFSET>,
2517 SendDvdStructure: SendDvdStructure::<Identity, Impl, OFFSET>,
2518 GetAdapterDescriptor: GetAdapterDescriptor::<Identity, Impl, OFFSET>,
2519 GetDeviceDescriptor: GetDeviceDescriptor::<Identity, Impl, OFFSET>,
2520 GetDiscInformation: GetDiscInformation::<Identity, Impl, OFFSET>,
2521 GetTrackInformation: GetTrackInformation::<Identity, Impl, OFFSET>,
2522 GetFeaturePage: GetFeaturePage::<Identity, Impl, OFFSET>,
2523 GetModePage: GetModePage::<Identity, Impl, OFFSET>,
2524 SetModePage: SetModePage::<Identity, Impl, OFFSET>,
2525 GetSupportedFeaturePages: GetSupportedFeaturePages::<Identity, Impl, OFFSET>,
2526 GetSupportedProfiles: GetSupportedProfiles::<Identity, Impl, OFFSET>,
2527 GetSupportedModePages: GetSupportedModePages::<Identity, Impl, OFFSET>,
2528 GetByteAlignmentMask: GetByteAlignmentMask::<Identity, Impl, OFFSET>,
2529 GetMaximumNonPageAlignedTransferSize: GetMaximumNonPageAlignedTransferSize::<Identity, Impl, OFFSET>,
2530 GetMaximumPageAlignedTransferSize: GetMaximumPageAlignedTransferSize::<Identity, Impl, OFFSET>,
2531 }
2532 }
2533 pub fn matches(iid: &windows::core::GUID) -> bool {
2534 iid == &<IDiscRecorder2Ex as ::windows::core::ComInterface>::IID
2535 }
2536}
2537#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
2538pub trait IEnumDiscMasterFormats_Impl: Sized {
2539 fn Next(&self, cformats: u32, lpiidformatid: *mut ::windows::core::GUID, pcfetched: *mut u32) -> ::windows::core::Result<()>;
2540 fn Skip(&self, cformats: u32) -> ::windows::core::Result<()>;
2541 fn Reset(&self) -> ::windows::core::Result<()>;
2542 fn Clone(&self) -> ::windows::core::Result<IEnumDiscMasterFormats>;
2543}
2544impl ::windows::core::RuntimeName for IEnumDiscMasterFormats {}
2545impl IEnumDiscMasterFormats_Vtbl {
2546 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscMasterFormats_Impl, const OFFSET: isize>() -> IEnumDiscMasterFormats_Vtbl {
2547 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscMasterFormats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cformats: u32, lpiidformatid: *mut ::windows::core::GUID, pcfetched: *mut u32) -> ::windows::core::HRESULT {
2548 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2549 let this = (*this).get_impl();
2550 this.Next(::core::mem::transmute_copy(&cformats), ::core::mem::transmute_copy(&lpiidformatid), ::core::mem::transmute_copy(&pcfetched)).into()
2551 }
2552 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscMasterFormats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cformats: u32) -> ::windows::core::HRESULT {
2553 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2554 let this = (*this).get_impl();
2555 this.Skip(::core::mem::transmute_copy(&cformats)).into()
2556 }
2557 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscMasterFormats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2558 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2559 let this = (*this).get_impl();
2560 this.Reset().into()
2561 }
2562 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscMasterFormats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2563 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2564 let this = (*this).get_impl();
2565 match this.Clone() {
2566 ::core::result::Result::Ok(ok__) => {
2567 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2568 ::windows::core::HRESULT(0)
2569 }
2570 ::core::result::Result::Err(err) => err.into(),
2571 }
2572 }
2573 Self {
2574 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2575 Next: Next::<Identity, Impl, OFFSET>,
2576 Skip: Skip::<Identity, Impl, OFFSET>,
2577 Reset: Reset::<Identity, Impl, OFFSET>,
2578 Clone: Clone::<Identity, Impl, OFFSET>,
2579 }
2580 }
2581 pub fn matches(iid: &windows::core::GUID) -> bool {
2582 iid == &<IEnumDiscMasterFormats as ::windows::core::ComInterface>::IID
2583 }
2584}
2585#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
2586pub trait IEnumDiscRecorders_Impl: Sized {
2587 fn Next(&self, crecorders: u32, pprecorder: *mut ::core::option::Option<IDiscRecorder>, pcfetched: *mut u32) -> ::windows::core::Result<()>;
2588 fn Skip(&self, crecorders: u32) -> ::windows::core::Result<()>;
2589 fn Reset(&self) -> ::windows::core::Result<()>;
2590 fn Clone(&self) -> ::windows::core::Result<IEnumDiscRecorders>;
2591}
2592impl ::windows::core::RuntimeName for IEnumDiscRecorders {}
2593impl IEnumDiscRecorders_Vtbl {
2594 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscRecorders_Impl, const OFFSET: isize>() -> IEnumDiscRecorders_Vtbl {
2595 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscRecorders_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crecorders: u32, pprecorder: *mut *mut ::core::ffi::c_void, pcfetched: *mut u32) -> ::windows::core::HRESULT {
2596 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2597 let this = (*this).get_impl();
2598 this.Next(::core::mem::transmute_copy(&crecorders), ::core::mem::transmute_copy(&pprecorder), ::core::mem::transmute_copy(&pcfetched)).into()
2599 }
2600 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscRecorders_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crecorders: u32) -> ::windows::core::HRESULT {
2601 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2602 let this = (*this).get_impl();
2603 this.Skip(::core::mem::transmute_copy(&crecorders)).into()
2604 }
2605 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscRecorders_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2606 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2607 let this = (*this).get_impl();
2608 this.Reset().into()
2609 }
2610 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumDiscRecorders_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2611 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2612 let this = (*this).get_impl();
2613 match this.Clone() {
2614 ::core::result::Result::Ok(ok__) => {
2615 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2616 ::windows::core::HRESULT(0)
2617 }
2618 ::core::result::Result::Err(err) => err.into(),
2619 }
2620 }
2621 Self {
2622 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2623 Next: Next::<Identity, Impl, OFFSET>,
2624 Skip: Skip::<Identity, Impl, OFFSET>,
2625 Reset: Reset::<Identity, Impl, OFFSET>,
2626 Clone: Clone::<Identity, Impl, OFFSET>,
2627 }
2628 }
2629 pub fn matches(iid: &windows::core::GUID) -> bool {
2630 iid == &<IEnumDiscRecorders as ::windows::core::ComInterface>::IID
2631 }
2632}
2633#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2634#[cfg(feature = "Win32_System_Com")]
2635pub trait IEnumFsiItems_Impl: Sized {
2636 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IFsiItem>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2637 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2638 fn Reset(&self) -> ::windows::core::Result<()>;
2639 fn Clone(&self) -> ::windows::core::Result<IEnumFsiItems>;
2640}
2641#[cfg(feature = "Win32_System_Com")]
2642impl ::windows::core::RuntimeName for IEnumFsiItems {}
2643#[cfg(feature = "Win32_System_Com")]
2644impl IEnumFsiItems_Vtbl {
2645 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumFsiItems_Impl, const OFFSET: isize>() -> IEnumFsiItems_Vtbl {
2646 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumFsiItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2647 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2648 let this = (*this).get_impl();
2649 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2650 }
2651 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumFsiItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2652 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2653 let this = (*this).get_impl();
2654 this.Skip(::core::mem::transmute_copy(&celt)).into()
2655 }
2656 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumFsiItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2657 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2658 let this = (*this).get_impl();
2659 this.Reset().into()
2660 }
2661 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumFsiItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2662 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2663 let this = (*this).get_impl();
2664 match this.Clone() {
2665 ::core::result::Result::Ok(ok__) => {
2666 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2667 ::windows::core::HRESULT(0)
2668 }
2669 ::core::result::Result::Err(err) => err.into(),
2670 }
2671 }
2672 Self {
2673 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2674 Next: Next::<Identity, Impl, OFFSET>,
2675 Skip: Skip::<Identity, Impl, OFFSET>,
2676 Reset: Reset::<Identity, Impl, OFFSET>,
2677 Clone: Clone::<Identity, Impl, OFFSET>,
2678 }
2679 }
2680 pub fn matches(iid: &windows::core::GUID) -> bool {
2681 iid == &<IEnumFsiItems as ::windows::core::ComInterface>::IID
2682 }
2683}
2684#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
2685#[cfg(feature = "Win32_System_Com")]
2686pub trait IEnumProgressItems_Impl: Sized {
2687 fn Next(&self, celt: u32, rgelt: *mut ::core::option::Option<IProgressItem>, pceltfetched: *mut u32) -> ::windows::core::Result<()>;
2688 fn Skip(&self, celt: u32) -> ::windows::core::Result<()>;
2689 fn Reset(&self) -> ::windows::core::Result<()>;
2690 fn Clone(&self) -> ::windows::core::Result<IEnumProgressItems>;
2691}
2692#[cfg(feature = "Win32_System_Com")]
2693impl ::windows::core::RuntimeName for IEnumProgressItems {}
2694#[cfg(feature = "Win32_System_Com")]
2695impl IEnumProgressItems_Vtbl {
2696 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumProgressItems_Impl, const OFFSET: isize>() -> IEnumProgressItems_Vtbl {
2697 unsafe extern "system" fn Next<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32, rgelt: *mut *mut ::core::ffi::c_void, pceltfetched: *mut u32) -> ::windows::core::HRESULT {
2698 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2699 let this = (*this).get_impl();
2700 this.Next(::core::mem::transmute_copy(&celt), ::core::mem::transmute_copy(&rgelt), ::core::mem::transmute_copy(&pceltfetched)).into()
2701 }
2702 unsafe extern "system" fn Skip<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, celt: u32) -> ::windows::core::HRESULT {
2703 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2704 let this = (*this).get_impl();
2705 this.Skip(::core::mem::transmute_copy(&celt)).into()
2706 }
2707 unsafe extern "system" fn Reset<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2708 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2709 let this = (*this).get_impl();
2710 this.Reset().into()
2711 }
2712 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IEnumProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2713 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2714 let this = (*this).get_impl();
2715 match this.Clone() {
2716 ::core::result::Result::Ok(ok__) => {
2717 ::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
2718 ::windows::core::HRESULT(0)
2719 }
2720 ::core::result::Result::Err(err) => err.into(),
2721 }
2722 }
2723 Self {
2724 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
2725 Next: Next::<Identity, Impl, OFFSET>,
2726 Skip: Skip::<Identity, Impl, OFFSET>,
2727 Reset: Reset::<Identity, Impl, OFFSET>,
2728 Clone: Clone::<Identity, Impl, OFFSET>,
2729 }
2730 }
2731 pub fn matches(iid: &windows::core::GUID) -> bool {
2732 iid == &<IEnumProgressItems as ::windows::core::ComInterface>::IID
2733 }
2734}
2735#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
2736#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2737pub trait IFileSystemImage_Impl: Sized + super::super::System::Com::IDispatch_Impl {
2738 fn Root(&self) -> ::windows::core::Result<IFsiDirectoryItem>;
2739 fn SessionStartBlock(&self) -> ::windows::core::Result<i32>;
2740 fn SetSessionStartBlock(&self, newval: i32) -> ::windows::core::Result<()>;
2741 fn FreeMediaBlocks(&self) -> ::windows::core::Result<i32>;
2742 fn SetFreeMediaBlocks(&self, newval: i32) -> ::windows::core::Result<()>;
2743 fn SetMaxMediaBlocksFromDevice(&self, discrecorder: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
2744 fn UsedBlocks(&self) -> ::windows::core::Result<i32>;
2745 fn VolumeName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2746 fn SetVolumeName(&self, newval: &::windows::core::BSTR) -> ::windows::core::Result<()>;
2747 fn ImportedVolumeName(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2748 fn BootImageOptions(&self) -> ::windows::core::Result<IBootOptions>;
2749 fn SetBootImageOptions(&self, newval: ::core::option::Option<&IBootOptions>) -> ::windows::core::Result<()>;
2750 fn FileCount(&self) -> ::windows::core::Result<i32>;
2751 fn DirectoryCount(&self) -> ::windows::core::Result<i32>;
2752 fn WorkingDirectory(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2753 fn SetWorkingDirectory(&self, newval: &::windows::core::BSTR) -> ::windows::core::Result<()>;
2754 fn ChangePoint(&self) -> ::windows::core::Result<i32>;
2755 fn StrictFileSystemCompliance(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
2756 fn SetStrictFileSystemCompliance(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
2757 fn UseRestrictedCharacterSet(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
2758 fn SetUseRestrictedCharacterSet(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
2759 fn FileSystemsToCreate(&self) -> ::windows::core::Result<FsiFileSystems>;
2760 fn SetFileSystemsToCreate(&self, newval: FsiFileSystems) -> ::windows::core::Result<()>;
2761 fn FileSystemsSupported(&self) -> ::windows::core::Result<FsiFileSystems>;
2762 fn SetUDFRevision(&self, newval: i32) -> ::windows::core::Result<()>;
2763 fn UDFRevision(&self) -> ::windows::core::Result<i32>;
2764 fn UDFRevisionsSupported(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2765 fn ChooseImageDefaults(&self, discrecorder: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<()>;
2766 fn ChooseImageDefaultsForMediaType(&self, value: IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::Result<()>;
2767 fn SetISO9660InterchangeLevel(&self, newval: i32) -> ::windows::core::Result<()>;
2768 fn ISO9660InterchangeLevel(&self) -> ::windows::core::Result<i32>;
2769 fn ISO9660InterchangeLevelsSupported(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2770 fn CreateResultImage(&self) -> ::windows::core::Result<IFileSystemImageResult>;
2771 fn Exists(&self, fullpath: &::windows::core::BSTR) -> ::windows::core::Result<FsiItemType>;
2772 fn CalculateDiscIdentifier(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2773 fn IdentifyFileSystemsOnDisc(&self, discrecorder: ::core::option::Option<&IDiscRecorder2>) -> ::windows::core::Result<FsiFileSystems>;
2774 fn GetDefaultFileSystemForImport(&self, filesystems: FsiFileSystems) -> ::windows::core::Result<FsiFileSystems>;
2775 fn ImportFileSystem(&self) -> ::windows::core::Result<FsiFileSystems>;
2776 fn ImportSpecificFileSystem(&self, filesystemtouse: FsiFileSystems) -> ::windows::core::Result<()>;
2777 fn RollbackToChangePoint(&self, changepoint: i32) -> ::windows::core::Result<()>;
2778 fn LockInChangePoint(&self) -> ::windows::core::Result<()>;
2779 fn CreateDirectoryItem(&self, name: &::windows::core::BSTR) -> ::windows::core::Result<IFsiDirectoryItem>;
2780 fn CreateFileItem(&self, name: &::windows::core::BSTR) -> ::windows::core::Result<IFsiFileItem>;
2781 fn VolumeNameUDF(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2782 fn VolumeNameJoliet(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2783 fn VolumeNameISO9660(&self) -> ::windows::core::Result<::windows::core::BSTR>;
2784 fn StageFiles(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
2785 fn SetStageFiles(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
2786 fn MultisessionInterfaces(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
2787 fn SetMultisessionInterfaces(&self, newval: *const super::super::System::Com::SAFEARRAY) -> ::windows::core::Result<()>;
2788}
2789#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2790impl ::windows::core::RuntimeName for IFileSystemImage {}
2791#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
2792impl IFileSystemImage_Vtbl {
2793 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>() -> IFileSystemImage_Vtbl {
2794 unsafe extern "system" fn Root<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2795 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2796 let this = (*this).get_impl();
2797 match this.Root() {
2798 ::core::result::Result::Ok(ok__) => {
2799 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2800 ::windows::core::HRESULT(0)
2801 }
2802 ::core::result::Result::Err(err) => err.into(),
2803 }
2804 }
2805 unsafe extern "system" fn SessionStartBlock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2806 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2807 let this = (*this).get_impl();
2808 match this.SessionStartBlock() {
2809 ::core::result::Result::Ok(ok__) => {
2810 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2811 ::windows::core::HRESULT(0)
2812 }
2813 ::core::result::Result::Err(err) => err.into(),
2814 }
2815 }
2816 unsafe extern "system" fn SetSessionStartBlock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: i32) -> ::windows::core::HRESULT {
2817 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2818 let this = (*this).get_impl();
2819 this.SetSessionStartBlock(::core::mem::transmute_copy(&newval)).into()
2820 }
2821 unsafe extern "system" fn FreeMediaBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2822 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2823 let this = (*this).get_impl();
2824 match this.FreeMediaBlocks() {
2825 ::core::result::Result::Ok(ok__) => {
2826 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2827 ::windows::core::HRESULT(0)
2828 }
2829 ::core::result::Result::Err(err) => err.into(),
2830 }
2831 }
2832 unsafe extern "system" fn SetFreeMediaBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: i32) -> ::windows::core::HRESULT {
2833 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2834 let this = (*this).get_impl();
2835 this.SetFreeMediaBlocks(::core::mem::transmute_copy(&newval)).into()
2836 }
2837 unsafe extern "system" fn SetMaxMediaBlocksFromDevice<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, discrecorder: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2838 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2839 let this = (*this).get_impl();
2840 this.SetMaxMediaBlocksFromDevice(::windows::core::from_raw_borrowed(&discrecorder)).into()
2841 }
2842 unsafe extern "system" fn UsedBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2843 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2844 let this = (*this).get_impl();
2845 match this.UsedBlocks() {
2846 ::core::result::Result::Ok(ok__) => {
2847 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2848 ::windows::core::HRESULT(0)
2849 }
2850 ::core::result::Result::Err(err) => err.into(),
2851 }
2852 }
2853 unsafe extern "system" fn VolumeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2854 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2855 let this = (*this).get_impl();
2856 match this.VolumeName() {
2857 ::core::result::Result::Ok(ok__) => {
2858 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2859 ::windows::core::HRESULT(0)
2860 }
2861 ::core::result::Result::Err(err) => err.into(),
2862 }
2863 }
2864 unsafe extern "system" fn SetVolumeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2865 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2866 let this = (*this).get_impl();
2867 this.SetVolumeName(::core::mem::transmute(&newval)).into()
2868 }
2869 unsafe extern "system" fn ImportedVolumeName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2870 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2871 let this = (*this).get_impl();
2872 match this.ImportedVolumeName() {
2873 ::core::result::Result::Ok(ok__) => {
2874 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2875 ::windows::core::HRESULT(0)
2876 }
2877 ::core::result::Result::Err(err) => err.into(),
2878 }
2879 }
2880 unsafe extern "system" fn BootImageOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2881 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2882 let this = (*this).get_impl();
2883 match this.BootImageOptions() {
2884 ::core::result::Result::Ok(ok__) => {
2885 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2886 ::windows::core::HRESULT(0)
2887 }
2888 ::core::result::Result::Err(err) => err.into(),
2889 }
2890 }
2891 unsafe extern "system" fn SetBootImageOptions<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
2892 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2893 let this = (*this).get_impl();
2894 this.SetBootImageOptions(::windows::core::from_raw_borrowed(&newval)).into()
2895 }
2896 unsafe extern "system" fn FileCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2897 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2898 let this = (*this).get_impl();
2899 match this.FileCount() {
2900 ::core::result::Result::Ok(ok__) => {
2901 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2902 ::windows::core::HRESULT(0)
2903 }
2904 ::core::result::Result::Err(err) => err.into(),
2905 }
2906 }
2907 unsafe extern "system" fn DirectoryCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2908 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2909 let this = (*this).get_impl();
2910 match this.DirectoryCount() {
2911 ::core::result::Result::Ok(ok__) => {
2912 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2913 ::windows::core::HRESULT(0)
2914 }
2915 ::core::result::Result::Err(err) => err.into(),
2916 }
2917 }
2918 unsafe extern "system" fn WorkingDirectory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2919 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2920 let this = (*this).get_impl();
2921 match this.WorkingDirectory() {
2922 ::core::result::Result::Ok(ok__) => {
2923 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2924 ::windows::core::HRESULT(0)
2925 }
2926 ::core::result::Result::Err(err) => err.into(),
2927 }
2928 }
2929 unsafe extern "system" fn SetWorkingDirectory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
2930 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2931 let this = (*this).get_impl();
2932 this.SetWorkingDirectory(::core::mem::transmute(&newval)).into()
2933 }
2934 unsafe extern "system" fn ChangePoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
2935 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2936 let this = (*this).get_impl();
2937 match this.ChangePoint() {
2938 ::core::result::Result::Ok(ok__) => {
2939 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2940 ::windows::core::HRESULT(0)
2941 }
2942 ::core::result::Result::Err(err) => err.into(),
2943 }
2944 }
2945 unsafe extern "system" fn StrictFileSystemCompliance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
2946 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2947 let this = (*this).get_impl();
2948 match this.StrictFileSystemCompliance() {
2949 ::core::result::Result::Ok(ok__) => {
2950 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2951 ::windows::core::HRESULT(0)
2952 }
2953 ::core::result::Result::Err(err) => err.into(),
2954 }
2955 }
2956 unsafe extern "system" fn SetStrictFileSystemCompliance<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
2957 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2958 let this = (*this).get_impl();
2959 this.SetStrictFileSystemCompliance(::core::mem::transmute_copy(&newval)).into()
2960 }
2961 unsafe extern "system" fn UseRestrictedCharacterSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
2962 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2963 let this = (*this).get_impl();
2964 match this.UseRestrictedCharacterSet() {
2965 ::core::result::Result::Ok(ok__) => {
2966 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2967 ::windows::core::HRESULT(0)
2968 }
2969 ::core::result::Result::Err(err) => err.into(),
2970 }
2971 }
2972 unsafe extern "system" fn SetUseRestrictedCharacterSet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
2973 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2974 let this = (*this).get_impl();
2975 this.SetUseRestrictedCharacterSet(::core::mem::transmute_copy(&newval)).into()
2976 }
2977 unsafe extern "system" fn FileSystemsToCreate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut FsiFileSystems) -> ::windows::core::HRESULT {
2978 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2979 let this = (*this).get_impl();
2980 match this.FileSystemsToCreate() {
2981 ::core::result::Result::Ok(ok__) => {
2982 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2983 ::windows::core::HRESULT(0)
2984 }
2985 ::core::result::Result::Err(err) => err.into(),
2986 }
2987 }
2988 unsafe extern "system" fn SetFileSystemsToCreate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: FsiFileSystems) -> ::windows::core::HRESULT {
2989 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2990 let this = (*this).get_impl();
2991 this.SetFileSystemsToCreate(::core::mem::transmute_copy(&newval)).into()
2992 }
2993 unsafe extern "system" fn FileSystemsSupported<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut FsiFileSystems) -> ::windows::core::HRESULT {
2994 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
2995 let this = (*this).get_impl();
2996 match this.FileSystemsSupported() {
2997 ::core::result::Result::Ok(ok__) => {
2998 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
2999 ::windows::core::HRESULT(0)
3000 }
3001 ::core::result::Result::Err(err) => err.into(),
3002 }
3003 }
3004 unsafe extern "system" fn SetUDFRevision<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: i32) -> ::windows::core::HRESULT {
3005 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3006 let this = (*this).get_impl();
3007 this.SetUDFRevision(::core::mem::transmute_copy(&newval)).into()
3008 }
3009 unsafe extern "system" fn UDFRevision<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3010 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3011 let this = (*this).get_impl();
3012 match this.UDFRevision() {
3013 ::core::result::Result::Ok(ok__) => {
3014 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3015 ::windows::core::HRESULT(0)
3016 }
3017 ::core::result::Result::Err(err) => err.into(),
3018 }
3019 }
3020 unsafe extern "system" fn UDFRevisionsSupported<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3021 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3022 let this = (*this).get_impl();
3023 match this.UDFRevisionsSupported() {
3024 ::core::result::Result::Ok(ok__) => {
3025 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3026 ::windows::core::HRESULT(0)
3027 }
3028 ::core::result::Result::Err(err) => err.into(),
3029 }
3030 }
3031 unsafe extern "system" fn ChooseImageDefaults<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, discrecorder: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3032 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3033 let this = (*this).get_impl();
3034 this.ChooseImageDefaults(::windows::core::from_raw_borrowed(&discrecorder)).into()
3035 }
3036 unsafe extern "system" fn ChooseImageDefaultsForMediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
3037 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3038 let this = (*this).get_impl();
3039 this.ChooseImageDefaultsForMediaType(::core::mem::transmute_copy(&value)).into()
3040 }
3041 unsafe extern "system" fn SetISO9660InterchangeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: i32) -> ::windows::core::HRESULT {
3042 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3043 let this = (*this).get_impl();
3044 this.SetISO9660InterchangeLevel(::core::mem::transmute_copy(&newval)).into()
3045 }
3046 unsafe extern "system" fn ISO9660InterchangeLevel<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3047 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3048 let this = (*this).get_impl();
3049 match this.ISO9660InterchangeLevel() {
3050 ::core::result::Result::Ok(ok__) => {
3051 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3052 ::windows::core::HRESULT(0)
3053 }
3054 ::core::result::Result::Err(err) => err.into(),
3055 }
3056 }
3057 unsafe extern "system" fn ISO9660InterchangeLevelsSupported<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3058 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3059 let this = (*this).get_impl();
3060 match this.ISO9660InterchangeLevelsSupported() {
3061 ::core::result::Result::Ok(ok__) => {
3062 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3063 ::windows::core::HRESULT(0)
3064 }
3065 ::core::result::Result::Err(err) => err.into(),
3066 }
3067 }
3068 unsafe extern "system" fn CreateResultImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, resultstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3069 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3070 let this = (*this).get_impl();
3071 match this.CreateResultImage() {
3072 ::core::result::Result::Ok(ok__) => {
3073 ::core::ptr::write(resultstream, ::core::mem::transmute(ok__));
3074 ::windows::core::HRESULT(0)
3075 }
3076 ::core::result::Result::Err(err) => err.into(),
3077 }
3078 }
3079 unsafe extern "system" fn Exists<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fullpath: ::std::mem::MaybeUninit<::windows::core::BSTR>, itemtype: *mut FsiItemType) -> ::windows::core::HRESULT {
3080 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3081 let this = (*this).get_impl();
3082 match this.Exists(::core::mem::transmute(&fullpath)) {
3083 ::core::result::Result::Ok(ok__) => {
3084 ::core::ptr::write(itemtype, ::core::mem::transmute(ok__));
3085 ::windows::core::HRESULT(0)
3086 }
3087 ::core::result::Result::Err(err) => err.into(),
3088 }
3089 }
3090 unsafe extern "system" fn CalculateDiscIdentifier<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, discidentifier: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3091 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3092 let this = (*this).get_impl();
3093 match this.CalculateDiscIdentifier() {
3094 ::core::result::Result::Ok(ok__) => {
3095 ::core::ptr::write(discidentifier, ::core::mem::transmute(ok__));
3096 ::windows::core::HRESULT(0)
3097 }
3098 ::core::result::Result::Err(err) => err.into(),
3099 }
3100 }
3101 unsafe extern "system" fn IdentifyFileSystemsOnDisc<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, discrecorder: *mut ::core::ffi::c_void, filesystems: *mut FsiFileSystems) -> ::windows::core::HRESULT {
3102 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3103 let this = (*this).get_impl();
3104 match this.IdentifyFileSystemsOnDisc(::windows::core::from_raw_borrowed(&discrecorder)) {
3105 ::core::result::Result::Ok(ok__) => {
3106 ::core::ptr::write(filesystems, ::core::mem::transmute(ok__));
3107 ::windows::core::HRESULT(0)
3108 }
3109 ::core::result::Result::Err(err) => err.into(),
3110 }
3111 }
3112 unsafe extern "system" fn GetDefaultFileSystemForImport<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filesystems: FsiFileSystems, importdefault: *mut FsiFileSystems) -> ::windows::core::HRESULT {
3113 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3114 let this = (*this).get_impl();
3115 match this.GetDefaultFileSystemForImport(::core::mem::transmute_copy(&filesystems)) {
3116 ::core::result::Result::Ok(ok__) => {
3117 ::core::ptr::write(importdefault, ::core::mem::transmute(ok__));
3118 ::windows::core::HRESULT(0)
3119 }
3120 ::core::result::Result::Err(err) => err.into(),
3121 }
3122 }
3123 unsafe extern "system" fn ImportFileSystem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, importedfilesystem: *mut FsiFileSystems) -> ::windows::core::HRESULT {
3124 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3125 let this = (*this).get_impl();
3126 match this.ImportFileSystem() {
3127 ::core::result::Result::Ok(ok__) => {
3128 ::core::ptr::write(importedfilesystem, ::core::mem::transmute(ok__));
3129 ::windows::core::HRESULT(0)
3130 }
3131 ::core::result::Result::Err(err) => err.into(),
3132 }
3133 }
3134 unsafe extern "system" fn ImportSpecificFileSystem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filesystemtouse: FsiFileSystems) -> ::windows::core::HRESULT {
3135 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3136 let this = (*this).get_impl();
3137 this.ImportSpecificFileSystem(::core::mem::transmute_copy(&filesystemtouse)).into()
3138 }
3139 unsafe extern "system" fn RollbackToChangePoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, changepoint: i32) -> ::windows::core::HRESULT {
3140 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3141 let this = (*this).get_impl();
3142 this.RollbackToChangePoint(::core::mem::transmute_copy(&changepoint)).into()
3143 }
3144 unsafe extern "system" fn LockInChangePoint<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3145 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3146 let this = (*this).get_impl();
3147 this.LockInChangePoint().into()
3148 }
3149 unsafe extern "system" fn CreateDirectoryItem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows::core::BSTR>, newitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3150 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3151 let this = (*this).get_impl();
3152 match this.CreateDirectoryItem(::core::mem::transmute(&name)) {
3153 ::core::result::Result::Ok(ok__) => {
3154 ::core::ptr::write(newitem, ::core::mem::transmute(ok__));
3155 ::windows::core::HRESULT(0)
3156 }
3157 ::core::result::Result::Err(err) => err.into(),
3158 }
3159 }
3160 unsafe extern "system" fn CreateFileItem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows::core::BSTR>, newitem: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3161 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3162 let this = (*this).get_impl();
3163 match this.CreateFileItem(::core::mem::transmute(&name)) {
3164 ::core::result::Result::Ok(ok__) => {
3165 ::core::ptr::write(newitem, ::core::mem::transmute(ok__));
3166 ::windows::core::HRESULT(0)
3167 }
3168 ::core::result::Result::Err(err) => err.into(),
3169 }
3170 }
3171 unsafe extern "system" fn VolumeNameUDF<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3172 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3173 let this = (*this).get_impl();
3174 match this.VolumeNameUDF() {
3175 ::core::result::Result::Ok(ok__) => {
3176 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3177 ::windows::core::HRESULT(0)
3178 }
3179 ::core::result::Result::Err(err) => err.into(),
3180 }
3181 }
3182 unsafe extern "system" fn VolumeNameJoliet<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3183 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3184 let this = (*this).get_impl();
3185 match this.VolumeNameJoliet() {
3186 ::core::result::Result::Ok(ok__) => {
3187 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3188 ::windows::core::HRESULT(0)
3189 }
3190 ::core::result::Result::Err(err) => err.into(),
3191 }
3192 }
3193 unsafe extern "system" fn VolumeNameISO9660<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3194 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3195 let this = (*this).get_impl();
3196 match this.VolumeNameISO9660() {
3197 ::core::result::Result::Ok(ok__) => {
3198 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3199 ::windows::core::HRESULT(0)
3200 }
3201 ::core::result::Result::Err(err) => err.into(),
3202 }
3203 }
3204 unsafe extern "system" fn StageFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3205 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3206 let this = (*this).get_impl();
3207 match this.StageFiles() {
3208 ::core::result::Result::Ok(ok__) => {
3209 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3210 ::windows::core::HRESULT(0)
3211 }
3212 ::core::result::Result::Err(err) => err.into(),
3213 }
3214 }
3215 unsafe extern "system" fn SetStageFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3216 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3217 let this = (*this).get_impl();
3218 this.SetStageFiles(::core::mem::transmute_copy(&newval)).into()
3219 }
3220 unsafe extern "system" fn MultisessionInterfaces<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3221 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3222 let this = (*this).get_impl();
3223 match this.MultisessionInterfaces() {
3224 ::core::result::Result::Ok(ok__) => {
3225 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3226 ::windows::core::HRESULT(0)
3227 }
3228 ::core::result::Result::Err(err) => err.into(),
3229 }
3230 }
3231 unsafe extern "system" fn SetMultisessionInterfaces<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: *const super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3232 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3233 let this = (*this).get_impl();
3234 this.SetMultisessionInterfaces(::core::mem::transmute_copy(&newval)).into()
3235 }
3236 Self {
3237 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
3238 Root: Root::<Identity, Impl, OFFSET>,
3239 SessionStartBlock: SessionStartBlock::<Identity, Impl, OFFSET>,
3240 SetSessionStartBlock: SetSessionStartBlock::<Identity, Impl, OFFSET>,
3241 FreeMediaBlocks: FreeMediaBlocks::<Identity, Impl, OFFSET>,
3242 SetFreeMediaBlocks: SetFreeMediaBlocks::<Identity, Impl, OFFSET>,
3243 SetMaxMediaBlocksFromDevice: SetMaxMediaBlocksFromDevice::<Identity, Impl, OFFSET>,
3244 UsedBlocks: UsedBlocks::<Identity, Impl, OFFSET>,
3245 VolumeName: VolumeName::<Identity, Impl, OFFSET>,
3246 SetVolumeName: SetVolumeName::<Identity, Impl, OFFSET>,
3247 ImportedVolumeName: ImportedVolumeName::<Identity, Impl, OFFSET>,
3248 BootImageOptions: BootImageOptions::<Identity, Impl, OFFSET>,
3249 SetBootImageOptions: SetBootImageOptions::<Identity, Impl, OFFSET>,
3250 FileCount: FileCount::<Identity, Impl, OFFSET>,
3251 DirectoryCount: DirectoryCount::<Identity, Impl, OFFSET>,
3252 WorkingDirectory: WorkingDirectory::<Identity, Impl, OFFSET>,
3253 SetWorkingDirectory: SetWorkingDirectory::<Identity, Impl, OFFSET>,
3254 ChangePoint: ChangePoint::<Identity, Impl, OFFSET>,
3255 StrictFileSystemCompliance: StrictFileSystemCompliance::<Identity, Impl, OFFSET>,
3256 SetStrictFileSystemCompliance: SetStrictFileSystemCompliance::<Identity, Impl, OFFSET>,
3257 UseRestrictedCharacterSet: UseRestrictedCharacterSet::<Identity, Impl, OFFSET>,
3258 SetUseRestrictedCharacterSet: SetUseRestrictedCharacterSet::<Identity, Impl, OFFSET>,
3259 FileSystemsToCreate: FileSystemsToCreate::<Identity, Impl, OFFSET>,
3260 SetFileSystemsToCreate: SetFileSystemsToCreate::<Identity, Impl, OFFSET>,
3261 FileSystemsSupported: FileSystemsSupported::<Identity, Impl, OFFSET>,
3262 SetUDFRevision: SetUDFRevision::<Identity, Impl, OFFSET>,
3263 UDFRevision: UDFRevision::<Identity, Impl, OFFSET>,
3264 UDFRevisionsSupported: UDFRevisionsSupported::<Identity, Impl, OFFSET>,
3265 ChooseImageDefaults: ChooseImageDefaults::<Identity, Impl, OFFSET>,
3266 ChooseImageDefaultsForMediaType: ChooseImageDefaultsForMediaType::<Identity, Impl, OFFSET>,
3267 SetISO9660InterchangeLevel: SetISO9660InterchangeLevel::<Identity, Impl, OFFSET>,
3268 ISO9660InterchangeLevel: ISO9660InterchangeLevel::<Identity, Impl, OFFSET>,
3269 ISO9660InterchangeLevelsSupported: ISO9660InterchangeLevelsSupported::<Identity, Impl, OFFSET>,
3270 CreateResultImage: CreateResultImage::<Identity, Impl, OFFSET>,
3271 Exists: Exists::<Identity, Impl, OFFSET>,
3272 CalculateDiscIdentifier: CalculateDiscIdentifier::<Identity, Impl, OFFSET>,
3273 IdentifyFileSystemsOnDisc: IdentifyFileSystemsOnDisc::<Identity, Impl, OFFSET>,
3274 GetDefaultFileSystemForImport: GetDefaultFileSystemForImport::<Identity, Impl, OFFSET>,
3275 ImportFileSystem: ImportFileSystem::<Identity, Impl, OFFSET>,
3276 ImportSpecificFileSystem: ImportSpecificFileSystem::<Identity, Impl, OFFSET>,
3277 RollbackToChangePoint: RollbackToChangePoint::<Identity, Impl, OFFSET>,
3278 LockInChangePoint: LockInChangePoint::<Identity, Impl, OFFSET>,
3279 CreateDirectoryItem: CreateDirectoryItem::<Identity, Impl, OFFSET>,
3280 CreateFileItem: CreateFileItem::<Identity, Impl, OFFSET>,
3281 VolumeNameUDF: VolumeNameUDF::<Identity, Impl, OFFSET>,
3282 VolumeNameJoliet: VolumeNameJoliet::<Identity, Impl, OFFSET>,
3283 VolumeNameISO9660: VolumeNameISO9660::<Identity, Impl, OFFSET>,
3284 StageFiles: StageFiles::<Identity, Impl, OFFSET>,
3285 SetStageFiles: SetStageFiles::<Identity, Impl, OFFSET>,
3286 MultisessionInterfaces: MultisessionInterfaces::<Identity, Impl, OFFSET>,
3287 SetMultisessionInterfaces: SetMultisessionInterfaces::<Identity, Impl, OFFSET>,
3288 }
3289 }
3290 pub fn matches(iid: &windows::core::GUID) -> bool {
3291 iid == &<IFileSystemImage as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
3292 }
3293}
3294#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3295#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3296pub trait IFileSystemImage2_Impl: Sized + IFileSystemImage_Impl {
3297 fn BootImageOptionsArray(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
3298 fn SetBootImageOptionsArray(&self, newval: *const super::super::System::Com::SAFEARRAY) -> ::windows::core::Result<()>;
3299}
3300#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3301impl ::windows::core::RuntimeName for IFileSystemImage2 {}
3302#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3303impl IFileSystemImage2_Vtbl {
3304 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage2_Impl, const OFFSET: isize>() -> IFileSystemImage2_Vtbl {
3305 unsafe extern "system" fn BootImageOptionsArray<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3306 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3307 let this = (*this).get_impl();
3308 match this.BootImageOptionsArray() {
3309 ::core::result::Result::Ok(ok__) => {
3310 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3311 ::windows::core::HRESULT(0)
3312 }
3313 ::core::result::Result::Err(err) => err.into(),
3314 }
3315 }
3316 unsafe extern "system" fn SetBootImageOptionsArray<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: *const super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
3317 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3318 let this = (*this).get_impl();
3319 this.SetBootImageOptionsArray(::core::mem::transmute_copy(&newval)).into()
3320 }
3321 Self {
3322 base__: IFileSystemImage_Vtbl::new::<Identity, Impl, OFFSET>(),
3323 BootImageOptionsArray: BootImageOptionsArray::<Identity, Impl, OFFSET>,
3324 SetBootImageOptionsArray: SetBootImageOptionsArray::<Identity, Impl, OFFSET>,
3325 }
3326 }
3327 pub fn matches(iid: &windows::core::GUID) -> bool {
3328 iid == &<IFileSystemImage2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFileSystemImage as ::windows::core::ComInterface>::IID
3329 }
3330}
3331#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3332#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3333pub trait IFileSystemImage3_Impl: Sized + IFileSystemImage2_Impl {
3334 fn CreateRedundantUdfMetadataFiles(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
3335 fn SetCreateRedundantUdfMetadataFiles(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
3336 fn ProbeSpecificFileSystem(&self, filesystemtoprobe: FsiFileSystems) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
3337}
3338#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3339impl ::windows::core::RuntimeName for IFileSystemImage3 {}
3340#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3341impl IFileSystemImage3_Vtbl {
3342 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage3_Impl, const OFFSET: isize>() -> IFileSystemImage3_Vtbl {
3343 unsafe extern "system" fn CreateRedundantUdfMetadataFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3344 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3345 let this = (*this).get_impl();
3346 match this.CreateRedundantUdfMetadataFiles() {
3347 ::core::result::Result::Ok(ok__) => {
3348 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3349 ::windows::core::HRESULT(0)
3350 }
3351 ::core::result::Result::Err(err) => err.into(),
3352 }
3353 }
3354 unsafe extern "system" fn SetCreateRedundantUdfMetadataFiles<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3355 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3356 let this = (*this).get_impl();
3357 this.SetCreateRedundantUdfMetadataFiles(::core::mem::transmute_copy(&newval)).into()
3358 }
3359 unsafe extern "system" fn ProbeSpecificFileSystem<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImage3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filesystemtoprobe: FsiFileSystems, isappendable: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3360 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3361 let this = (*this).get_impl();
3362 match this.ProbeSpecificFileSystem(::core::mem::transmute_copy(&filesystemtoprobe)) {
3363 ::core::result::Result::Ok(ok__) => {
3364 ::core::ptr::write(isappendable, ::core::mem::transmute(ok__));
3365 ::windows::core::HRESULT(0)
3366 }
3367 ::core::result::Result::Err(err) => err.into(),
3368 }
3369 }
3370 Self {
3371 base__: IFileSystemImage2_Vtbl::new::<Identity, Impl, OFFSET>(),
3372 CreateRedundantUdfMetadataFiles: CreateRedundantUdfMetadataFiles::<Identity, Impl, OFFSET>,
3373 SetCreateRedundantUdfMetadataFiles: SetCreateRedundantUdfMetadataFiles::<Identity, Impl, OFFSET>,
3374 ProbeSpecificFileSystem: ProbeSpecificFileSystem::<Identity, Impl, OFFSET>,
3375 }
3376 }
3377 pub fn matches(iid: &windows::core::GUID) -> bool {
3378 iid == &<IFileSystemImage3 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFileSystemImage as ::windows::core::ComInterface>::IID || iid == &<IFileSystemImage2 as ::windows::core::ComInterface>::IID
3379 }
3380}
3381#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3382#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3383pub trait IFileSystemImageResult_Impl: Sized + super::super::System::Com::IDispatch_Impl {
3384 fn ImageStream(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
3385 fn ProgressItems(&self) -> ::windows::core::Result<IProgressItems>;
3386 fn TotalBlocks(&self) -> ::windows::core::Result<i32>;
3387 fn BlockSize(&self) -> ::windows::core::Result<i32>;
3388 fn DiscId(&self) -> ::windows::core::Result<::windows::core::BSTR>;
3389}
3390#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3391impl ::windows::core::RuntimeName for IFileSystemImageResult {}
3392#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3393impl IFileSystemImageResult_Vtbl {
3394 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>() -> IFileSystemImageResult_Vtbl {
3395 unsafe extern "system" fn ImageStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3396 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3397 let this = (*this).get_impl();
3398 match this.ImageStream() {
3399 ::core::result::Result::Ok(ok__) => {
3400 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3401 ::windows::core::HRESULT(0)
3402 }
3403 ::core::result::Result::Err(err) => err.into(),
3404 }
3405 }
3406 unsafe extern "system" fn ProgressItems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3407 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3408 let this = (*this).get_impl();
3409 match this.ProgressItems() {
3410 ::core::result::Result::Ok(ok__) => {
3411 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3412 ::windows::core::HRESULT(0)
3413 }
3414 ::core::result::Result::Err(err) => err.into(),
3415 }
3416 }
3417 unsafe extern "system" fn TotalBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3418 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3419 let this = (*this).get_impl();
3420 match this.TotalBlocks() {
3421 ::core::result::Result::Ok(ok__) => {
3422 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3423 ::windows::core::HRESULT(0)
3424 }
3425 ::core::result::Result::Err(err) => err.into(),
3426 }
3427 }
3428 unsafe extern "system" fn BlockSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3429 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3430 let this = (*this).get_impl();
3431 match this.BlockSize() {
3432 ::core::result::Result::Ok(ok__) => {
3433 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3434 ::windows::core::HRESULT(0)
3435 }
3436 ::core::result::Result::Err(err) => err.into(),
3437 }
3438 }
3439 unsafe extern "system" fn DiscId<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3440 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3441 let this = (*this).get_impl();
3442 match this.DiscId() {
3443 ::core::result::Result::Ok(ok__) => {
3444 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3445 ::windows::core::HRESULT(0)
3446 }
3447 ::core::result::Result::Err(err) => err.into(),
3448 }
3449 }
3450 Self {
3451 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
3452 ImageStream: ImageStream::<Identity, Impl, OFFSET>,
3453 ProgressItems: ProgressItems::<Identity, Impl, OFFSET>,
3454 TotalBlocks: TotalBlocks::<Identity, Impl, OFFSET>,
3455 BlockSize: BlockSize::<Identity, Impl, OFFSET>,
3456 DiscId: DiscId::<Identity, Impl, OFFSET>,
3457 }
3458 }
3459 pub fn matches(iid: &windows::core::GUID) -> bool {
3460 iid == &<IFileSystemImageResult as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
3461 }
3462}
3463#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3464#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3465pub trait IFileSystemImageResult2_Impl: Sized + IFileSystemImageResult_Impl {
3466 fn ModifiedBlocks(&self) -> ::windows::core::Result<IBlockRangeList>;
3467}
3468#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3469impl ::windows::core::RuntimeName for IFileSystemImageResult2 {}
3470#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3471impl IFileSystemImageResult2_Vtbl {
3472 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult2_Impl, const OFFSET: isize>() -> IFileSystemImageResult2_Vtbl {
3473 unsafe extern "system" fn ModifiedBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFileSystemImageResult2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3474 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3475 let this = (*this).get_impl();
3476 match this.ModifiedBlocks() {
3477 ::core::result::Result::Ok(ok__) => {
3478 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3479 ::windows::core::HRESULT(0)
3480 }
3481 ::core::result::Result::Err(err) => err.into(),
3482 }
3483 }
3484 Self { base__: IFileSystemImageResult_Vtbl::new::<Identity, Impl, OFFSET>(), ModifiedBlocks: ModifiedBlocks::<Identity, Impl, OFFSET> }
3485 }
3486 pub fn matches(iid: &windows::core::GUID) -> bool {
3487 iid == &<IFileSystemImageResult2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFileSystemImageResult as ::windows::core::ComInterface>::IID
3488 }
3489}
3490#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3491#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3492pub trait IFsiDirectoryItem_Impl: Sized + IFsiItem_Impl {
3493 fn _NewEnum(&self) -> ::windows::core::Result<super::super::System::Ole::IEnumVARIANT>;
3494 fn get_Item(&self, path: &::windows::core::BSTR) -> ::windows::core::Result<IFsiItem>;
3495 fn Count(&self) -> ::windows::core::Result<i32>;
3496 fn EnumFsiItems(&self) -> ::windows::core::Result<IEnumFsiItems>;
3497 fn AddDirectory(&self, path: &::windows::core::BSTR) -> ::windows::core::Result<()>;
3498 fn AddFile(&self, path: &::windows::core::BSTR, filedata: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
3499 fn AddTree(&self, sourcedirectory: &::windows::core::BSTR, includebasedirectory: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
3500 fn Add(&self, item: ::core::option::Option<&IFsiItem>) -> ::windows::core::Result<()>;
3501 fn Remove(&self, path: &::windows::core::BSTR) -> ::windows::core::Result<()>;
3502 fn RemoveTree(&self, path: &::windows::core::BSTR) -> ::windows::core::Result<()>;
3503}
3504#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3505impl ::windows::core::RuntimeName for IFsiDirectoryItem {}
3506#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3507impl IFsiDirectoryItem_Vtbl {
3508 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>() -> IFsiDirectoryItem_Vtbl {
3509 unsafe extern "system" fn _NewEnum<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3510 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3511 let this = (*this).get_impl();
3512 match this._NewEnum() {
3513 ::core::result::Result::Ok(ok__) => {
3514 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
3515 ::windows::core::HRESULT(0)
3516 }
3517 ::core::result::Result::Err(err) => err.into(),
3518 }
3519 }
3520 unsafe extern "system" fn get_Item<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>, item: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3521 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3522 let this = (*this).get_impl();
3523 match this.get_Item(::core::mem::transmute(&path)) {
3524 ::core::result::Result::Ok(ok__) => {
3525 ::core::ptr::write(item, ::core::mem::transmute(ok__));
3526 ::windows::core::HRESULT(0)
3527 }
3528 ::core::result::Result::Err(err) => err.into(),
3529 }
3530 }
3531 unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut i32) -> ::windows::core::HRESULT {
3532 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3533 let this = (*this).get_impl();
3534 match this.Count() {
3535 ::core::result::Result::Ok(ok__) => {
3536 ::core::ptr::write(count, ::core::mem::transmute(ok__));
3537 ::windows::core::HRESULT(0)
3538 }
3539 ::core::result::Result::Err(err) => err.into(),
3540 }
3541 }
3542 unsafe extern "system" fn EnumFsiItems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3543 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3544 let this = (*this).get_impl();
3545 match this.EnumFsiItems() {
3546 ::core::result::Result::Ok(ok__) => {
3547 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
3548 ::windows::core::HRESULT(0)
3549 }
3550 ::core::result::Result::Err(err) => err.into(),
3551 }
3552 }
3553 unsafe extern "system" fn AddDirectory<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3554 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3555 let this = (*this).get_impl();
3556 this.AddDirectory(::core::mem::transmute(&path)).into()
3557 }
3558 unsafe extern "system" fn AddFile<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>, filedata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3559 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3560 let this = (*this).get_impl();
3561 this.AddFile(::core::mem::transmute(&path), ::windows::core::from_raw_borrowed(&filedata)).into()
3562 }
3563 unsafe extern "system" fn AddTree<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourcedirectory: ::std::mem::MaybeUninit<::windows::core::BSTR>, includebasedirectory: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3564 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3565 let this = (*this).get_impl();
3566 this.AddTree(::core::mem::transmute(&sourcedirectory), ::core::mem::transmute_copy(&includebasedirectory)).into()
3567 }
3568 unsafe extern "system" fn Add<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, item: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3569 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3570 let this = (*this).get_impl();
3571 this.Add(::windows::core::from_raw_borrowed(&item)).into()
3572 }
3573 unsafe extern "system" fn Remove<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3574 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3575 let this = (*this).get_impl();
3576 this.Remove(::core::mem::transmute(&path)).into()
3577 }
3578 unsafe extern "system" fn RemoveTree<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, path: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3579 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3580 let this = (*this).get_impl();
3581 this.RemoveTree(::core::mem::transmute(&path)).into()
3582 }
3583 Self {
3584 base__: IFsiItem_Vtbl::new::<Identity, Impl, OFFSET>(),
3585 _NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
3586 get_Item: get_Item::<Identity, Impl, OFFSET>,
3587 Count: Count::<Identity, Impl, OFFSET>,
3588 EnumFsiItems: EnumFsiItems::<Identity, Impl, OFFSET>,
3589 AddDirectory: AddDirectory::<Identity, Impl, OFFSET>,
3590 AddFile: AddFile::<Identity, Impl, OFFSET>,
3591 AddTree: AddTree::<Identity, Impl, OFFSET>,
3592 Add: Add::<Identity, Impl, OFFSET>,
3593 Remove: Remove::<Identity, Impl, OFFSET>,
3594 RemoveTree: RemoveTree::<Identity, Impl, OFFSET>,
3595 }
3596 }
3597 pub fn matches(iid: &windows::core::GUID) -> bool {
3598 iid == &<IFsiDirectoryItem as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFsiItem as ::windows::core::ComInterface>::IID
3599 }
3600}
3601#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3602#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3603pub trait IFsiDirectoryItem2_Impl: Sized + IFsiDirectoryItem_Impl {
3604 fn AddTreeWithNamedStreams(&self, sourcedirectory: &::windows::core::BSTR, includebasedirectory: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
3605}
3606#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3607impl ::windows::core::RuntimeName for IFsiDirectoryItem2 {}
3608#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3609impl IFsiDirectoryItem2_Vtbl {
3610 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem2_Impl, const OFFSET: isize>() -> IFsiDirectoryItem2_Vtbl {
3611 unsafe extern "system" fn AddTreeWithNamedStreams<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiDirectoryItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourcedirectory: ::std::mem::MaybeUninit<::windows::core::BSTR>, includebasedirectory: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3612 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3613 let this = (*this).get_impl();
3614 this.AddTreeWithNamedStreams(::core::mem::transmute(&sourcedirectory), ::core::mem::transmute_copy(&includebasedirectory)).into()
3615 }
3616 Self { base__: IFsiDirectoryItem_Vtbl::new::<Identity, Impl, OFFSET>(), AddTreeWithNamedStreams: AddTreeWithNamedStreams::<Identity, Impl, OFFSET> }
3617 }
3618 pub fn matches(iid: &windows::core::GUID) -> bool {
3619 iid == &<IFsiDirectoryItem2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFsiItem as ::windows::core::ComInterface>::IID || iid == &<IFsiDirectoryItem as ::windows::core::ComInterface>::IID
3620 }
3621}
3622#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3623#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3624pub trait IFsiFileItem_Impl: Sized + IFsiItem_Impl {
3625 fn DataSize(&self) -> ::windows::core::Result<i64>;
3626 fn DataSize32BitLow(&self) -> ::windows::core::Result<i32>;
3627 fn DataSize32BitHigh(&self) -> ::windows::core::Result<i32>;
3628 fn Data(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
3629 fn SetData(&self, newval: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
3630}
3631#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3632impl ::windows::core::RuntimeName for IFsiFileItem {}
3633#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3634impl IFsiFileItem_Vtbl {
3635 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>() -> IFsiFileItem_Vtbl {
3636 unsafe extern "system" fn DataSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i64) -> ::windows::core::HRESULT {
3637 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3638 let this = (*this).get_impl();
3639 match this.DataSize() {
3640 ::core::result::Result::Ok(ok__) => {
3641 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3642 ::windows::core::HRESULT(0)
3643 }
3644 ::core::result::Result::Err(err) => err.into(),
3645 }
3646 }
3647 unsafe extern "system" fn DataSize32BitLow<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3648 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3649 let this = (*this).get_impl();
3650 match this.DataSize32BitLow() {
3651 ::core::result::Result::Ok(ok__) => {
3652 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3653 ::windows::core::HRESULT(0)
3654 }
3655 ::core::result::Result::Err(err) => err.into(),
3656 }
3657 }
3658 unsafe extern "system" fn DataSize32BitHigh<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut i32) -> ::windows::core::HRESULT {
3659 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3660 let this = (*this).get_impl();
3661 match this.DataSize32BitHigh() {
3662 ::core::result::Result::Ok(ok__) => {
3663 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3664 ::windows::core::HRESULT(0)
3665 }
3666 ::core::result::Result::Err(err) => err.into(),
3667 }
3668 }
3669 unsafe extern "system" fn Data<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3670 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3671 let this = (*this).get_impl();
3672 match this.Data() {
3673 ::core::result::Result::Ok(ok__) => {
3674 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3675 ::windows::core::HRESULT(0)
3676 }
3677 ::core::result::Result::Err(err) => err.into(),
3678 }
3679 }
3680 unsafe extern "system" fn SetData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3681 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3682 let this = (*this).get_impl();
3683 this.SetData(::windows::core::from_raw_borrowed(&newval)).into()
3684 }
3685 Self {
3686 base__: IFsiItem_Vtbl::new::<Identity, Impl, OFFSET>(),
3687 DataSize: DataSize::<Identity, Impl, OFFSET>,
3688 DataSize32BitLow: DataSize32BitLow::<Identity, Impl, OFFSET>,
3689 DataSize32BitHigh: DataSize32BitHigh::<Identity, Impl, OFFSET>,
3690 Data: Data::<Identity, Impl, OFFSET>,
3691 SetData: SetData::<Identity, Impl, OFFSET>,
3692 }
3693 }
3694 pub fn matches(iid: &windows::core::GUID) -> bool {
3695 iid == &<IFsiFileItem as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFsiItem as ::windows::core::ComInterface>::IID
3696 }
3697}
3698#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3699#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3700pub trait IFsiFileItem2_Impl: Sized + IFsiFileItem_Impl {
3701 fn FsiNamedStreams(&self) -> ::windows::core::Result<IFsiNamedStreams>;
3702 fn IsNamedStream(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
3703 fn AddStream(&self, name: &::windows::core::BSTR, streamdata: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
3704 fn RemoveStream(&self, name: &::windows::core::BSTR) -> ::windows::core::Result<()>;
3705 fn IsRealTime(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
3706 fn SetIsRealTime(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
3707}
3708#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3709impl ::windows::core::RuntimeName for IFsiFileItem2 {}
3710#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3711impl IFsiFileItem2_Vtbl {
3712 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>() -> IFsiFileItem2_Vtbl {
3713 unsafe extern "system" fn FsiNamedStreams<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streams: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3714 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3715 let this = (*this).get_impl();
3716 match this.FsiNamedStreams() {
3717 ::core::result::Result::Ok(ok__) => {
3718 ::core::ptr::write(streams, ::core::mem::transmute(ok__));
3719 ::windows::core::HRESULT(0)
3720 }
3721 ::core::result::Result::Err(err) => err.into(),
3722 }
3723 }
3724 unsafe extern "system" fn IsNamedStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3725 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3726 let this = (*this).get_impl();
3727 match this.IsNamedStream() {
3728 ::core::result::Result::Ok(ok__) => {
3729 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3730 ::windows::core::HRESULT(0)
3731 }
3732 ::core::result::Result::Err(err) => err.into(),
3733 }
3734 }
3735 unsafe extern "system" fn AddStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows::core::BSTR>, streamdata: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3736 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3737 let this = (*this).get_impl();
3738 this.AddStream(::core::mem::transmute(&name), ::windows::core::from_raw_borrowed(&streamdata)).into()
3739 }
3740 unsafe extern "system" fn RemoveStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, name: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3741 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3742 let this = (*this).get_impl();
3743 this.RemoveStream(::core::mem::transmute(&name)).into()
3744 }
3745 unsafe extern "system" fn IsRealTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3746 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3747 let this = (*this).get_impl();
3748 match this.IsRealTime() {
3749 ::core::result::Result::Ok(ok__) => {
3750 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3751 ::windows::core::HRESULT(0)
3752 }
3753 ::core::result::Result::Err(err) => err.into(),
3754 }
3755 }
3756 unsafe extern "system" fn SetIsRealTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiFileItem2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3757 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3758 let this = (*this).get_impl();
3759 this.SetIsRealTime(::core::mem::transmute_copy(&newval)).into()
3760 }
3761 Self {
3762 base__: IFsiFileItem_Vtbl::new::<Identity, Impl, OFFSET>(),
3763 FsiNamedStreams: FsiNamedStreams::<Identity, Impl, OFFSET>,
3764 IsNamedStream: IsNamedStream::<Identity, Impl, OFFSET>,
3765 AddStream: AddStream::<Identity, Impl, OFFSET>,
3766 RemoveStream: RemoveStream::<Identity, Impl, OFFSET>,
3767 IsRealTime: IsRealTime::<Identity, Impl, OFFSET>,
3768 SetIsRealTime: SetIsRealTime::<Identity, Impl, OFFSET>,
3769 }
3770 }
3771 pub fn matches(iid: &windows::core::GUID) -> bool {
3772 iid == &<IFsiFileItem2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IFsiItem as ::windows::core::ComInterface>::IID || iid == &<IFsiFileItem as ::windows::core::ComInterface>::IID
3773 }
3774}
3775#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3776#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3777pub trait IFsiItem_Impl: Sized + super::super::System::Com::IDispatch_Impl {
3778 fn Name(&self) -> ::windows::core::Result<::windows::core::BSTR>;
3779 fn FullPath(&self) -> ::windows::core::Result<::windows::core::BSTR>;
3780 fn CreationTime(&self) -> ::windows::core::Result<f64>;
3781 fn SetCreationTime(&self, newval: f64) -> ::windows::core::Result<()>;
3782 fn LastAccessedTime(&self) -> ::windows::core::Result<f64>;
3783 fn SetLastAccessedTime(&self, newval: f64) -> ::windows::core::Result<()>;
3784 fn LastModifiedTime(&self) -> ::windows::core::Result<f64>;
3785 fn SetLastModifiedTime(&self, newval: f64) -> ::windows::core::Result<()>;
3786 fn IsHidden(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
3787 fn SetIsHidden(&self, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
3788 fn FileSystemName(&self, filesystem: FsiFileSystems) -> ::windows::core::Result<::windows::core::BSTR>;
3789 fn FileSystemPath(&self, filesystem: FsiFileSystems) -> ::windows::core::Result<::windows::core::BSTR>;
3790}
3791#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3792impl ::windows::core::RuntimeName for IFsiItem {}
3793#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3794impl IFsiItem_Vtbl {
3795 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>() -> IFsiItem_Vtbl {
3796 unsafe extern "system" fn Name<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3797 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3798 let this = (*this).get_impl();
3799 match this.Name() {
3800 ::core::result::Result::Ok(ok__) => {
3801 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3802 ::windows::core::HRESULT(0)
3803 }
3804 ::core::result::Result::Err(err) => err.into(),
3805 }
3806 }
3807 unsafe extern "system" fn FullPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3808 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3809 let this = (*this).get_impl();
3810 match this.FullPath() {
3811 ::core::result::Result::Ok(ok__) => {
3812 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3813 ::windows::core::HRESULT(0)
3814 }
3815 ::core::result::Result::Err(err) => err.into(),
3816 }
3817 }
3818 unsafe extern "system" fn CreationTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut f64) -> ::windows::core::HRESULT {
3819 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3820 let this = (*this).get_impl();
3821 match this.CreationTime() {
3822 ::core::result::Result::Ok(ok__) => {
3823 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3824 ::windows::core::HRESULT(0)
3825 }
3826 ::core::result::Result::Err(err) => err.into(),
3827 }
3828 }
3829 unsafe extern "system" fn SetCreationTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: f64) -> ::windows::core::HRESULT {
3830 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3831 let this = (*this).get_impl();
3832 this.SetCreationTime(::core::mem::transmute_copy(&newval)).into()
3833 }
3834 unsafe extern "system" fn LastAccessedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut f64) -> ::windows::core::HRESULT {
3835 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3836 let this = (*this).get_impl();
3837 match this.LastAccessedTime() {
3838 ::core::result::Result::Ok(ok__) => {
3839 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3840 ::windows::core::HRESULT(0)
3841 }
3842 ::core::result::Result::Err(err) => err.into(),
3843 }
3844 }
3845 unsafe extern "system" fn SetLastAccessedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: f64) -> ::windows::core::HRESULT {
3846 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3847 let this = (*this).get_impl();
3848 this.SetLastAccessedTime(::core::mem::transmute_copy(&newval)).into()
3849 }
3850 unsafe extern "system" fn LastModifiedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut f64) -> ::windows::core::HRESULT {
3851 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3852 let this = (*this).get_impl();
3853 match this.LastModifiedTime() {
3854 ::core::result::Result::Ok(ok__) => {
3855 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3856 ::windows::core::HRESULT(0)
3857 }
3858 ::core::result::Result::Err(err) => err.into(),
3859 }
3860 }
3861 unsafe extern "system" fn SetLastModifiedTime<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: f64) -> ::windows::core::HRESULT {
3862 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3863 let this = (*this).get_impl();
3864 this.SetLastModifiedTime(::core::mem::transmute_copy(&newval)).into()
3865 }
3866 unsafe extern "system" fn IsHidden<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3867 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3868 let this = (*this).get_impl();
3869 match this.IsHidden() {
3870 ::core::result::Result::Ok(ok__) => {
3871 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3872 ::windows::core::HRESULT(0)
3873 }
3874 ::core::result::Result::Err(err) => err.into(),
3875 }
3876 }
3877 unsafe extern "system" fn SetIsHidden<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newval: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
3878 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3879 let this = (*this).get_impl();
3880 this.SetIsHidden(::core::mem::transmute_copy(&newval)).into()
3881 }
3882 unsafe extern "system" fn FileSystemName<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filesystem: FsiFileSystems, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3883 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3884 let this = (*this).get_impl();
3885 match this.FileSystemName(::core::mem::transmute_copy(&filesystem)) {
3886 ::core::result::Result::Ok(ok__) => {
3887 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3888 ::windows::core::HRESULT(0)
3889 }
3890 ::core::result::Result::Err(err) => err.into(),
3891 }
3892 }
3893 unsafe extern "system" fn FileSystemPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filesystem: FsiFileSystems, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
3894 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3895 let this = (*this).get_impl();
3896 match this.FileSystemPath(::core::mem::transmute_copy(&filesystem)) {
3897 ::core::result::Result::Ok(ok__) => {
3898 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
3899 ::windows::core::HRESULT(0)
3900 }
3901 ::core::result::Result::Err(err) => err.into(),
3902 }
3903 }
3904 Self {
3905 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
3906 Name: Name::<Identity, Impl, OFFSET>,
3907 FullPath: FullPath::<Identity, Impl, OFFSET>,
3908 CreationTime: CreationTime::<Identity, Impl, OFFSET>,
3909 SetCreationTime: SetCreationTime::<Identity, Impl, OFFSET>,
3910 LastAccessedTime: LastAccessedTime::<Identity, Impl, OFFSET>,
3911 SetLastAccessedTime: SetLastAccessedTime::<Identity, Impl, OFFSET>,
3912 LastModifiedTime: LastModifiedTime::<Identity, Impl, OFFSET>,
3913 SetLastModifiedTime: SetLastModifiedTime::<Identity, Impl, OFFSET>,
3914 IsHidden: IsHidden::<Identity, Impl, OFFSET>,
3915 SetIsHidden: SetIsHidden::<Identity, Impl, OFFSET>,
3916 FileSystemName: FileSystemName::<Identity, Impl, OFFSET>,
3917 FileSystemPath: FileSystemPath::<Identity, Impl, OFFSET>,
3918 }
3919 }
3920 pub fn matches(iid: &windows::core::GUID) -> bool {
3921 iid == &<IFsiItem as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
3922 }
3923}
3924#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3925#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3926pub trait IFsiNamedStreams_Impl: Sized + super::super::System::Com::IDispatch_Impl {
3927 fn _NewEnum(&self) -> ::windows::core::Result<super::super::System::Ole::IEnumVARIANT>;
3928 fn get_Item(&self, index: i32) -> ::windows::core::Result<IFsiFileItem2>;
3929 fn Count(&self) -> ::windows::core::Result<i32>;
3930 fn EnumNamedStreams(&self) -> ::windows::core::Result<IEnumFsiItems>;
3931}
3932#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3933impl ::windows::core::RuntimeName for IFsiNamedStreams {}
3934#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3935impl IFsiNamedStreams_Vtbl {
3936 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiNamedStreams_Impl, const OFFSET: isize>() -> IFsiNamedStreams_Vtbl {
3937 unsafe extern "system" fn _NewEnum<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiNamedStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3938 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3939 let this = (*this).get_impl();
3940 match this._NewEnum() {
3941 ::core::result::Result::Ok(ok__) => {
3942 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
3943 ::windows::core::HRESULT(0)
3944 }
3945 ::core::result::Result::Err(err) => err.into(),
3946 }
3947 }
3948 unsafe extern "system" fn get_Item<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiNamedStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, item: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3949 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3950 let this = (*this).get_impl();
3951 match this.get_Item(::core::mem::transmute_copy(&index)) {
3952 ::core::result::Result::Ok(ok__) => {
3953 ::core::ptr::write(item, ::core::mem::transmute(ok__));
3954 ::windows::core::HRESULT(0)
3955 }
3956 ::core::result::Result::Err(err) => err.into(),
3957 }
3958 }
3959 unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiNamedStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut i32) -> ::windows::core::HRESULT {
3960 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3961 let this = (*this).get_impl();
3962 match this.Count() {
3963 ::core::result::Result::Ok(ok__) => {
3964 ::core::ptr::write(count, ::core::mem::transmute(ok__));
3965 ::windows::core::HRESULT(0)
3966 }
3967 ::core::result::Result::Err(err) => err.into(),
3968 }
3969 }
3970 unsafe extern "system" fn EnumNamedStreams<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IFsiNamedStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
3971 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
3972 let this = (*this).get_impl();
3973 match this.EnumNamedStreams() {
3974 ::core::result::Result::Ok(ok__) => {
3975 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
3976 ::windows::core::HRESULT(0)
3977 }
3978 ::core::result::Result::Err(err) => err.into(),
3979 }
3980 }
3981 Self {
3982 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
3983 _NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
3984 get_Item: get_Item::<Identity, Impl, OFFSET>,
3985 Count: Count::<Identity, Impl, OFFSET>,
3986 EnumNamedStreams: EnumNamedStreams::<Identity, Impl, OFFSET>,
3987 }
3988 }
3989 pub fn matches(iid: &windows::core::GUID) -> bool {
3990 iid == &<IFsiNamedStreams as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
3991 }
3992}
3993#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
3994#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
3995pub trait IIsoImageManager_Impl: Sized + super::super::System::Com::IDispatch_Impl {
3996 fn Path(&self) -> ::windows::core::Result<::windows::core::BSTR>;
3997 fn Stream(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
3998 fn SetPath(&self, val: &::windows::core::BSTR) -> ::windows::core::Result<()>;
3999 fn SetStream(&self, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
4000 fn Validate(&self) -> ::windows::core::Result<()>;
4001}
4002#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4003impl ::windows::core::RuntimeName for IIsoImageManager {}
4004#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4005impl IIsoImageManager_Vtbl {
4006 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>() -> IIsoImageManager_Vtbl {
4007 unsafe extern "system" fn Path<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pval: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4008 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4009 let this = (*this).get_impl();
4010 match this.Path() {
4011 ::core::result::Result::Ok(ok__) => {
4012 ::core::ptr::write(pval, ::core::mem::transmute(ok__));
4013 ::windows::core::HRESULT(0)
4014 }
4015 ::core::result::Result::Err(err) => err.into(),
4016 }
4017 }
4018 unsafe extern "system" fn Stream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4019 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4020 let this = (*this).get_impl();
4021 match this.Stream() {
4022 ::core::result::Result::Ok(ok__) => {
4023 ::core::ptr::write(data, ::core::mem::transmute(ok__));
4024 ::windows::core::HRESULT(0)
4025 }
4026 ::core::result::Result::Err(err) => err.into(),
4027 }
4028 }
4029 unsafe extern "system" fn SetPath<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, val: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4030 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4031 let this = (*this).get_impl();
4032 this.SetPath(::core::mem::transmute(&val)).into()
4033 }
4034 unsafe extern "system" fn SetStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4035 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4036 let this = (*this).get_impl();
4037 this.SetStream(::windows::core::from_raw_borrowed(&data)).into()
4038 }
4039 unsafe extern "system" fn Validate<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IIsoImageManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4040 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4041 let this = (*this).get_impl();
4042 this.Validate().into()
4043 }
4044 Self {
4045 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4046 Path: Path::<Identity, Impl, OFFSET>,
4047 Stream: Stream::<Identity, Impl, OFFSET>,
4048 SetPath: SetPath::<Identity, Impl, OFFSET>,
4049 SetStream: SetStream::<Identity, Impl, OFFSET>,
4050 Validate: Validate::<Identity, Impl, OFFSET>,
4051 }
4052 }
4053 pub fn matches(iid: &windows::core::GUID) -> bool {
4054 iid == &<IIsoImageManager as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4055 }
4056}
4057#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
4058#[cfg(feature = "Win32_System_Com_StructuredStorage")]
4059pub trait IJolietDiscMaster_Impl: Sized {
4060 fn GetTotalDataBlocks(&self) -> ::windows::core::Result<i32>;
4061 fn GetUsedDataBlocks(&self) -> ::windows::core::Result<i32>;
4062 fn GetDataBlockSize(&self) -> ::windows::core::Result<i32>;
4063 fn AddData(&self, pstorage: ::core::option::Option<&super::super::System::Com::StructuredStorage::IStorage>, lfileoverwrite: i32) -> ::windows::core::Result<()>;
4064 fn GetJolietProperties(&self) -> ::windows::core::Result<super::super::System::Com::StructuredStorage::IPropertyStorage>;
4065 fn SetJolietProperties(&self, ppropstg: ::core::option::Option<&super::super::System::Com::StructuredStorage::IPropertyStorage>) -> ::windows::core::Result<()>;
4066}
4067#[cfg(feature = "Win32_System_Com_StructuredStorage")]
4068impl ::windows::core::RuntimeName for IJolietDiscMaster {}
4069#[cfg(feature = "Win32_System_Com_StructuredStorage")]
4070impl IJolietDiscMaster_Vtbl {
4071 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>() -> IJolietDiscMaster_Vtbl {
4072 unsafe extern "system" fn GetTotalDataBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblocks: *mut i32) -> ::windows::core::HRESULT {
4073 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4074 let this = (*this).get_impl();
4075 match this.GetTotalDataBlocks() {
4076 ::core::result::Result::Ok(ok__) => {
4077 ::core::ptr::write(pnblocks, ::core::mem::transmute(ok__));
4078 ::windows::core::HRESULT(0)
4079 }
4080 ::core::result::Result::Err(err) => err.into(),
4081 }
4082 }
4083 unsafe extern "system" fn GetUsedDataBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblocks: *mut i32) -> ::windows::core::HRESULT {
4084 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4085 let this = (*this).get_impl();
4086 match this.GetUsedDataBlocks() {
4087 ::core::result::Result::Ok(ok__) => {
4088 ::core::ptr::write(pnblocks, ::core::mem::transmute(ok__));
4089 ::windows::core::HRESULT(0)
4090 }
4091 ::core::result::Result::Err(err) => err.into(),
4092 }
4093 }
4094 unsafe extern "system" fn GetDataBlockSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblockbytes: *mut i32) -> ::windows::core::HRESULT {
4095 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4096 let this = (*this).get_impl();
4097 match this.GetDataBlockSize() {
4098 ::core::result::Result::Ok(ok__) => {
4099 ::core::ptr::write(pnblockbytes, ::core::mem::transmute(ok__));
4100 ::windows::core::HRESULT(0)
4101 }
4102 ::core::result::Result::Err(err) => err.into(),
4103 }
4104 }
4105 unsafe extern "system" fn AddData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstorage: *mut ::core::ffi::c_void, lfileoverwrite: i32) -> ::windows::core::HRESULT {
4106 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4107 let this = (*this).get_impl();
4108 this.AddData(::windows::core::from_raw_borrowed(&pstorage), ::core::mem::transmute_copy(&lfileoverwrite)).into()
4109 }
4110 unsafe extern "system" fn GetJolietProperties<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pppropstg: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4111 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4112 let this = (*this).get_impl();
4113 match this.GetJolietProperties() {
4114 ::core::result::Result::Ok(ok__) => {
4115 ::core::ptr::write(pppropstg, ::core::mem::transmute(ok__));
4116 ::windows::core::HRESULT(0)
4117 }
4118 ::core::result::Result::Err(err) => err.into(),
4119 }
4120 }
4121 unsafe extern "system" fn SetJolietProperties<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IJolietDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropstg: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4122 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4123 let this = (*this).get_impl();
4124 this.SetJolietProperties(::windows::core::from_raw_borrowed(&ppropstg)).into()
4125 }
4126 Self {
4127 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4128 GetTotalDataBlocks: GetTotalDataBlocks::<Identity, Impl, OFFSET>,
4129 GetUsedDataBlocks: GetUsedDataBlocks::<Identity, Impl, OFFSET>,
4130 GetDataBlockSize: GetDataBlockSize::<Identity, Impl, OFFSET>,
4131 AddData: AddData::<Identity, Impl, OFFSET>,
4132 GetJolietProperties: GetJolietProperties::<Identity, Impl, OFFSET>,
4133 SetJolietProperties: SetJolietProperties::<Identity, Impl, OFFSET>,
4134 }
4135 }
4136 pub fn matches(iid: &windows::core::GUID) -> bool {
4137 iid == &<IJolietDiscMaster as ::windows::core::ComInterface>::IID
4138 }
4139}
4140#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4141#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4142pub trait IMultisession_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4143 fn IsSupportedOnCurrentMediaState(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
4144 fn SetInUse(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
4145 fn InUse(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
4146 fn ImportRecorder(&self) -> ::windows::core::Result<IDiscRecorder2>;
4147}
4148#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4149impl ::windows::core::RuntimeName for IMultisession {}
4150#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4151impl IMultisession_Vtbl {
4152 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisession_Impl, const OFFSET: isize>() -> IMultisession_Vtbl {
4153 unsafe extern "system" fn IsSupportedOnCurrentMediaState<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4154 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4155 let this = (*this).get_impl();
4156 match this.IsSupportedOnCurrentMediaState() {
4157 ::core::result::Result::Ok(ok__) => {
4158 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4159 ::windows::core::HRESULT(0)
4160 }
4161 ::core::result::Result::Err(err) => err.into(),
4162 }
4163 }
4164 unsafe extern "system" fn SetInUse<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4165 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4166 let this = (*this).get_impl();
4167 this.SetInUse(::core::mem::transmute_copy(&value)).into()
4168 }
4169 unsafe extern "system" fn InUse<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4170 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4171 let this = (*this).get_impl();
4172 match this.InUse() {
4173 ::core::result::Result::Ok(ok__) => {
4174 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4175 ::windows::core::HRESULT(0)
4176 }
4177 ::core::result::Result::Err(err) => err.into(),
4178 }
4179 }
4180 unsafe extern "system" fn ImportRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4181 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4182 let this = (*this).get_impl();
4183 match this.ImportRecorder() {
4184 ::core::result::Result::Ok(ok__) => {
4185 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4186 ::windows::core::HRESULT(0)
4187 }
4188 ::core::result::Result::Err(err) => err.into(),
4189 }
4190 }
4191 Self {
4192 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4193 IsSupportedOnCurrentMediaState: IsSupportedOnCurrentMediaState::<Identity, Impl, OFFSET>,
4194 SetInUse: SetInUse::<Identity, Impl, OFFSET>,
4195 InUse: InUse::<Identity, Impl, OFFSET>,
4196 ImportRecorder: ImportRecorder::<Identity, Impl, OFFSET>,
4197 }
4198 }
4199 pub fn matches(iid: &windows::core::GUID) -> bool {
4200 iid == &<IMultisession as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4201 }
4202}
4203#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4204#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4205pub trait IMultisessionRandomWrite_Impl: Sized + IMultisession_Impl {
4206 fn WriteUnitSize(&self) -> ::windows::core::Result<i32>;
4207 fn LastWrittenAddress(&self) -> ::windows::core::Result<i32>;
4208 fn TotalSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
4209}
4210#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4211impl ::windows::core::RuntimeName for IMultisessionRandomWrite {}
4212#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4213impl IMultisessionRandomWrite_Vtbl {
4214 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionRandomWrite_Impl, const OFFSET: isize>() -> IMultisessionRandomWrite_Vtbl {
4215 unsafe extern "system" fn WriteUnitSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionRandomWrite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4216 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4217 let this = (*this).get_impl();
4218 match this.WriteUnitSize() {
4219 ::core::result::Result::Ok(ok__) => {
4220 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4221 ::windows::core::HRESULT(0)
4222 }
4223 ::core::result::Result::Err(err) => err.into(),
4224 }
4225 }
4226 unsafe extern "system" fn LastWrittenAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionRandomWrite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4227 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4228 let this = (*this).get_impl();
4229 match this.LastWrittenAddress() {
4230 ::core::result::Result::Ok(ok__) => {
4231 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4232 ::windows::core::HRESULT(0)
4233 }
4234 ::core::result::Result::Err(err) => err.into(),
4235 }
4236 }
4237 unsafe extern "system" fn TotalSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionRandomWrite_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4238 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4239 let this = (*this).get_impl();
4240 match this.TotalSectorsOnMedia() {
4241 ::core::result::Result::Ok(ok__) => {
4242 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4243 ::windows::core::HRESULT(0)
4244 }
4245 ::core::result::Result::Err(err) => err.into(),
4246 }
4247 }
4248 Self {
4249 base__: IMultisession_Vtbl::new::<Identity, Impl, OFFSET>(),
4250 WriteUnitSize: WriteUnitSize::<Identity, Impl, OFFSET>,
4251 LastWrittenAddress: LastWrittenAddress::<Identity, Impl, OFFSET>,
4252 TotalSectorsOnMedia: TotalSectorsOnMedia::<Identity, Impl, OFFSET>,
4253 }
4254 }
4255 pub fn matches(iid: &windows::core::GUID) -> bool {
4256 iid == &<IMultisessionRandomWrite as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IMultisession as ::windows::core::ComInterface>::IID
4257 }
4258}
4259#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4260#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4261pub trait IMultisessionSequential_Impl: Sized + IMultisession_Impl {
4262 fn IsFirstDataSession(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
4263 fn StartAddressOfPreviousSession(&self) -> ::windows::core::Result<i32>;
4264 fn LastWrittenAddressOfPreviousSession(&self) -> ::windows::core::Result<i32>;
4265 fn NextWritableAddress(&self) -> ::windows::core::Result<i32>;
4266 fn FreeSectorsOnMedia(&self) -> ::windows::core::Result<i32>;
4267}
4268#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4269impl ::windows::core::RuntimeName for IMultisessionSequential {}
4270#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4271impl IMultisessionSequential_Vtbl {
4272 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>() -> IMultisessionSequential_Vtbl {
4273 unsafe extern "system" fn IsFirstDataSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4274 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4275 let this = (*this).get_impl();
4276 match this.IsFirstDataSession() {
4277 ::core::result::Result::Ok(ok__) => {
4278 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4279 ::windows::core::HRESULT(0)
4280 }
4281 ::core::result::Result::Err(err) => err.into(),
4282 }
4283 }
4284 unsafe extern "system" fn StartAddressOfPreviousSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4285 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4286 let this = (*this).get_impl();
4287 match this.StartAddressOfPreviousSession() {
4288 ::core::result::Result::Ok(ok__) => {
4289 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4290 ::windows::core::HRESULT(0)
4291 }
4292 ::core::result::Result::Err(err) => err.into(),
4293 }
4294 }
4295 unsafe extern "system" fn LastWrittenAddressOfPreviousSession<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4296 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4297 let this = (*this).get_impl();
4298 match this.LastWrittenAddressOfPreviousSession() {
4299 ::core::result::Result::Ok(ok__) => {
4300 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4301 ::windows::core::HRESULT(0)
4302 }
4303 ::core::result::Result::Err(err) => err.into(),
4304 }
4305 }
4306 unsafe extern "system" fn NextWritableAddress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4307 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4308 let this = (*this).get_impl();
4309 match this.NextWritableAddress() {
4310 ::core::result::Result::Ok(ok__) => {
4311 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4312 ::windows::core::HRESULT(0)
4313 }
4314 ::core::result::Result::Err(err) => err.into(),
4315 }
4316 }
4317 unsafe extern "system" fn FreeSectorsOnMedia<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4318 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4319 let this = (*this).get_impl();
4320 match this.FreeSectorsOnMedia() {
4321 ::core::result::Result::Ok(ok__) => {
4322 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4323 ::windows::core::HRESULT(0)
4324 }
4325 ::core::result::Result::Err(err) => err.into(),
4326 }
4327 }
4328 Self {
4329 base__: IMultisession_Vtbl::new::<Identity, Impl, OFFSET>(),
4330 IsFirstDataSession: IsFirstDataSession::<Identity, Impl, OFFSET>,
4331 StartAddressOfPreviousSession: StartAddressOfPreviousSession::<Identity, Impl, OFFSET>,
4332 LastWrittenAddressOfPreviousSession: LastWrittenAddressOfPreviousSession::<Identity, Impl, OFFSET>,
4333 NextWritableAddress: NextWritableAddress::<Identity, Impl, OFFSET>,
4334 FreeSectorsOnMedia: FreeSectorsOnMedia::<Identity, Impl, OFFSET>,
4335 }
4336 }
4337 pub fn matches(iid: &windows::core::GUID) -> bool {
4338 iid == &<IMultisessionSequential as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IMultisession as ::windows::core::ComInterface>::IID
4339 }
4340}
4341#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4342#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4343pub trait IMultisessionSequential2_Impl: Sized + IMultisessionSequential_Impl {
4344 fn WriteUnitSize(&self) -> ::windows::core::Result<i32>;
4345}
4346#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4347impl ::windows::core::RuntimeName for IMultisessionSequential2 {}
4348#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4349impl IMultisessionSequential2_Vtbl {
4350 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential2_Impl, const OFFSET: isize>() -> IMultisessionSequential2_Vtbl {
4351 unsafe extern "system" fn WriteUnitSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IMultisessionSequential2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4352 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4353 let this = (*this).get_impl();
4354 match this.WriteUnitSize() {
4355 ::core::result::Result::Ok(ok__) => {
4356 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4357 ::windows::core::HRESULT(0)
4358 }
4359 ::core::result::Result::Err(err) => err.into(),
4360 }
4361 }
4362 Self { base__: IMultisessionSequential_Vtbl::new::<Identity, Impl, OFFSET>(), WriteUnitSize: WriteUnitSize::<Identity, Impl, OFFSET> }
4363 }
4364 pub fn matches(iid: &windows::core::GUID) -> bool {
4365 iid == &<IMultisessionSequential2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID || iid == &<IMultisession as ::windows::core::ComInterface>::IID || iid == &<IMultisessionSequential as ::windows::core::ComInterface>::IID
4366 }
4367}
4368#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4369#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4370pub trait IProgressItem_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4371 fn Description(&self) -> ::windows::core::Result<::windows::core::BSTR>;
4372 fn FirstBlock(&self) -> ::windows::core::Result<u32>;
4373 fn LastBlock(&self) -> ::windows::core::Result<u32>;
4374 fn BlockCount(&self) -> ::windows::core::Result<u32>;
4375}
4376#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4377impl ::windows::core::RuntimeName for IProgressItem {}
4378#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4379impl IProgressItem_Vtbl {
4380 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItem_Impl, const OFFSET: isize>() -> IProgressItem_Vtbl {
4381 unsafe extern "system" fn Description<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, desc: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4382 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4383 let this = (*this).get_impl();
4384 match this.Description() {
4385 ::core::result::Result::Ok(ok__) => {
4386 ::core::ptr::write(desc, ::core::mem::transmute(ok__));
4387 ::windows::core::HRESULT(0)
4388 }
4389 ::core::result::Result::Err(err) => err.into(),
4390 }
4391 }
4392 unsafe extern "system" fn FirstBlock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, block: *mut u32) -> ::windows::core::HRESULT {
4393 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4394 let this = (*this).get_impl();
4395 match this.FirstBlock() {
4396 ::core::result::Result::Ok(ok__) => {
4397 ::core::ptr::write(block, ::core::mem::transmute(ok__));
4398 ::windows::core::HRESULT(0)
4399 }
4400 ::core::result::Result::Err(err) => err.into(),
4401 }
4402 }
4403 unsafe extern "system" fn LastBlock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, block: *mut u32) -> ::windows::core::HRESULT {
4404 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4405 let this = (*this).get_impl();
4406 match this.LastBlock() {
4407 ::core::result::Result::Ok(ok__) => {
4408 ::core::ptr::write(block, ::core::mem::transmute(ok__));
4409 ::windows::core::HRESULT(0)
4410 }
4411 ::core::result::Result::Err(err) => err.into(),
4412 }
4413 }
4414 unsafe extern "system" fn BlockCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, blocks: *mut u32) -> ::windows::core::HRESULT {
4415 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4416 let this = (*this).get_impl();
4417 match this.BlockCount() {
4418 ::core::result::Result::Ok(ok__) => {
4419 ::core::ptr::write(blocks, ::core::mem::transmute(ok__));
4420 ::windows::core::HRESULT(0)
4421 }
4422 ::core::result::Result::Err(err) => err.into(),
4423 }
4424 }
4425 Self {
4426 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4427 Description: Description::<Identity, Impl, OFFSET>,
4428 FirstBlock: FirstBlock::<Identity, Impl, OFFSET>,
4429 LastBlock: LastBlock::<Identity, Impl, OFFSET>,
4430 BlockCount: BlockCount::<Identity, Impl, OFFSET>,
4431 }
4432 }
4433 pub fn matches(iid: &windows::core::GUID) -> bool {
4434 iid == &<IProgressItem as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4435 }
4436}
4437#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4438#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4439pub trait IProgressItems_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4440 fn _NewEnum(&self) -> ::windows::core::Result<super::super::System::Ole::IEnumVARIANT>;
4441 fn get_Item(&self, index: i32) -> ::windows::core::Result<IProgressItem>;
4442 fn Count(&self) -> ::windows::core::Result<i32>;
4443 fn ProgressItemFromBlock(&self, block: u32) -> ::windows::core::Result<IProgressItem>;
4444 fn ProgressItemFromDescription(&self, description: &::windows::core::BSTR) -> ::windows::core::Result<IProgressItem>;
4445 fn EnumProgressItems(&self) -> ::windows::core::Result<IEnumProgressItems>;
4446}
4447#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4448impl ::windows::core::RuntimeName for IProgressItems {}
4449#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4450impl IProgressItems_Vtbl {
4451 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>() -> IProgressItems_Vtbl {
4452 unsafe extern "system" fn _NewEnum<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4453 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4454 let this = (*this).get_impl();
4455 match this._NewEnum() {
4456 ::core::result::Result::Ok(ok__) => {
4457 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
4458 ::windows::core::HRESULT(0)
4459 }
4460 ::core::result::Result::Err(err) => err.into(),
4461 }
4462 }
4463 unsafe extern "system" fn get_Item<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, item: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4464 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4465 let this = (*this).get_impl();
4466 match this.get_Item(::core::mem::transmute_copy(&index)) {
4467 ::core::result::Result::Ok(ok__) => {
4468 ::core::ptr::write(item, ::core::mem::transmute(ok__));
4469 ::windows::core::HRESULT(0)
4470 }
4471 ::core::result::Result::Err(err) => err.into(),
4472 }
4473 }
4474 unsafe extern "system" fn Count<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, count: *mut i32) -> ::windows::core::HRESULT {
4475 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4476 let this = (*this).get_impl();
4477 match this.Count() {
4478 ::core::result::Result::Ok(ok__) => {
4479 ::core::ptr::write(count, ::core::mem::transmute(ok__));
4480 ::windows::core::HRESULT(0)
4481 }
4482 ::core::result::Result::Err(err) => err.into(),
4483 }
4484 }
4485 unsafe extern "system" fn ProgressItemFromBlock<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, block: u32, item: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4486 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4487 let this = (*this).get_impl();
4488 match this.ProgressItemFromBlock(::core::mem::transmute_copy(&block)) {
4489 ::core::result::Result::Ok(ok__) => {
4490 ::core::ptr::write(item, ::core::mem::transmute(ok__));
4491 ::windows::core::HRESULT(0)
4492 }
4493 ::core::result::Result::Err(err) => err.into(),
4494 }
4495 }
4496 unsafe extern "system" fn ProgressItemFromDescription<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, description: ::std::mem::MaybeUninit<::windows::core::BSTR>, item: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4497 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4498 let this = (*this).get_impl();
4499 match this.ProgressItemFromDescription(::core::mem::transmute(&description)) {
4500 ::core::result::Result::Ok(ok__) => {
4501 ::core::ptr::write(item, ::core::mem::transmute(ok__));
4502 ::windows::core::HRESULT(0)
4503 }
4504 ::core::result::Result::Err(err) => err.into(),
4505 }
4506 }
4507 unsafe extern "system" fn EnumProgressItems<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IProgressItems_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newenum: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4508 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4509 let this = (*this).get_impl();
4510 match this.EnumProgressItems() {
4511 ::core::result::Result::Ok(ok__) => {
4512 ::core::ptr::write(newenum, ::core::mem::transmute(ok__));
4513 ::windows::core::HRESULT(0)
4514 }
4515 ::core::result::Result::Err(err) => err.into(),
4516 }
4517 }
4518 Self {
4519 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4520 _NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
4521 get_Item: get_Item::<Identity, Impl, OFFSET>,
4522 Count: Count::<Identity, Impl, OFFSET>,
4523 ProgressItemFromBlock: ProgressItemFromBlock::<Identity, Impl, OFFSET>,
4524 ProgressItemFromDescription: ProgressItemFromDescription::<Identity, Impl, OFFSET>,
4525 EnumProgressItems: EnumProgressItems::<Identity, Impl, OFFSET>,
4526 }
4527 }
4528 pub fn matches(iid: &windows::core::GUID) -> bool {
4529 iid == &<IProgressItems as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4530 }
4531}
4532#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4533#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4534pub trait IRawCDImageCreator_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4535 fn CreateResultImage(&self) -> ::windows::core::Result<super::super::System::Com::IStream>;
4536 fn AddTrack(&self, datatype: IMAPI_CD_SECTOR_TYPE, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<i32>;
4537 fn AddSpecialPregap(&self, data: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
4538 fn AddSubcodeRWGenerator(&self, subcode: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
4539 fn SetResultingImageType(&self, value: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::Result<()>;
4540 fn ResultingImageType(&self) -> ::windows::core::Result<IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE>;
4541 fn StartOfLeadout(&self) -> ::windows::core::Result<i32>;
4542 fn SetStartOfLeadoutLimit(&self, value: i32) -> ::windows::core::Result<()>;
4543 fn StartOfLeadoutLimit(&self) -> ::windows::core::Result<i32>;
4544 fn SetDisableGaplessAudio(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
4545 fn DisableGaplessAudio(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
4546 fn SetMediaCatalogNumber(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
4547 fn MediaCatalogNumber(&self) -> ::windows::core::Result<::windows::core::BSTR>;
4548 fn SetStartingTrackNumber(&self, value: i32) -> ::windows::core::Result<()>;
4549 fn StartingTrackNumber(&self) -> ::windows::core::Result<i32>;
4550 fn get_TrackInfo(&self, trackindex: i32) -> ::windows::core::Result<IRawCDImageTrackInfo>;
4551 fn NumberOfExistingTracks(&self) -> ::windows::core::Result<i32>;
4552 fn LastUsedUserSectorInImage(&self) -> ::windows::core::Result<i32>;
4553 fn ExpectedTableOfContents(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
4554}
4555#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4556impl ::windows::core::RuntimeName for IRawCDImageCreator {}
4557#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4558impl IRawCDImageCreator_Vtbl {
4559 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>() -> IRawCDImageCreator_Vtbl {
4560 unsafe extern "system" fn CreateResultImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, resultstream: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4561 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4562 let this = (*this).get_impl();
4563 match this.CreateResultImage() {
4564 ::core::result::Result::Ok(ok__) => {
4565 ::core::ptr::write(resultstream, ::core::mem::transmute(ok__));
4566 ::windows::core::HRESULT(0)
4567 }
4568 ::core::result::Result::Err(err) => err.into(),
4569 }
4570 }
4571 unsafe extern "system" fn AddTrack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, datatype: IMAPI_CD_SECTOR_TYPE, data: *mut ::core::ffi::c_void, trackindex: *mut i32) -> ::windows::core::HRESULT {
4572 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4573 let this = (*this).get_impl();
4574 match this.AddTrack(::core::mem::transmute_copy(&datatype), ::windows::core::from_raw_borrowed(&data)) {
4575 ::core::result::Result::Ok(ok__) => {
4576 ::core::ptr::write(trackindex, ::core::mem::transmute(ok__));
4577 ::windows::core::HRESULT(0)
4578 }
4579 ::core::result::Result::Err(err) => err.into(),
4580 }
4581 }
4582 unsafe extern "system" fn AddSpecialPregap<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4583 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4584 let this = (*this).get_impl();
4585 this.AddSpecialPregap(::windows::core::from_raw_borrowed(&data)).into()
4586 }
4587 unsafe extern "system" fn AddSubcodeRWGenerator<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, subcode: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4588 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4589 let this = (*this).get_impl();
4590 this.AddSubcodeRWGenerator(::windows::core::from_raw_borrowed(&subcode)).into()
4591 }
4592 unsafe extern "system" fn SetResultingImageType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::HRESULT {
4593 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4594 let this = (*this).get_impl();
4595 this.SetResultingImageType(::core::mem::transmute_copy(&value)).into()
4596 }
4597 unsafe extern "system" fn ResultingImageType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_FORMAT2_RAW_CD_DATA_SECTOR_TYPE) -> ::windows::core::HRESULT {
4598 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4599 let this = (*this).get_impl();
4600 match this.ResultingImageType() {
4601 ::core::result::Result::Ok(ok__) => {
4602 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4603 ::windows::core::HRESULT(0)
4604 }
4605 ::core::result::Result::Err(err) => err.into(),
4606 }
4607 }
4608 unsafe extern "system" fn StartOfLeadout<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4609 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4610 let this = (*this).get_impl();
4611 match this.StartOfLeadout() {
4612 ::core::result::Result::Ok(ok__) => {
4613 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4614 ::windows::core::HRESULT(0)
4615 }
4616 ::core::result::Result::Err(err) => err.into(),
4617 }
4618 }
4619 unsafe extern "system" fn SetStartOfLeadoutLimit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT {
4620 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4621 let this = (*this).get_impl();
4622 this.SetStartOfLeadoutLimit(::core::mem::transmute_copy(&value)).into()
4623 }
4624 unsafe extern "system" fn StartOfLeadoutLimit<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4625 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4626 let this = (*this).get_impl();
4627 match this.StartOfLeadoutLimit() {
4628 ::core::result::Result::Ok(ok__) => {
4629 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4630 ::windows::core::HRESULT(0)
4631 }
4632 ::core::result::Result::Err(err) => err.into(),
4633 }
4634 }
4635 unsafe extern "system" fn SetDisableGaplessAudio<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4636 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4637 let this = (*this).get_impl();
4638 this.SetDisableGaplessAudio(::core::mem::transmute_copy(&value)).into()
4639 }
4640 unsafe extern "system" fn DisableGaplessAudio<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4641 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4642 let this = (*this).get_impl();
4643 match this.DisableGaplessAudio() {
4644 ::core::result::Result::Ok(ok__) => {
4645 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4646 ::windows::core::HRESULT(0)
4647 }
4648 ::core::result::Result::Err(err) => err.into(),
4649 }
4650 }
4651 unsafe extern "system" fn SetMediaCatalogNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4652 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4653 let this = (*this).get_impl();
4654 this.SetMediaCatalogNumber(::core::mem::transmute(&value)).into()
4655 }
4656 unsafe extern "system" fn MediaCatalogNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4657 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4658 let this = (*this).get_impl();
4659 match this.MediaCatalogNumber() {
4660 ::core::result::Result::Ok(ok__) => {
4661 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4662 ::windows::core::HRESULT(0)
4663 }
4664 ::core::result::Result::Err(err) => err.into(),
4665 }
4666 }
4667 unsafe extern "system" fn SetStartingTrackNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT {
4668 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4669 let this = (*this).get_impl();
4670 this.SetStartingTrackNumber(::core::mem::transmute_copy(&value)).into()
4671 }
4672 unsafe extern "system" fn StartingTrackNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4673 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4674 let this = (*this).get_impl();
4675 match this.StartingTrackNumber() {
4676 ::core::result::Result::Ok(ok__) => {
4677 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4678 ::windows::core::HRESULT(0)
4679 }
4680 ::core::result::Result::Err(err) => err.into(),
4681 }
4682 }
4683 unsafe extern "system" fn get_TrackInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, trackindex: i32, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4684 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4685 let this = (*this).get_impl();
4686 match this.get_TrackInfo(::core::mem::transmute_copy(&trackindex)) {
4687 ::core::result::Result::Ok(ok__) => {
4688 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4689 ::windows::core::HRESULT(0)
4690 }
4691 ::core::result::Result::Err(err) => err.into(),
4692 }
4693 }
4694 unsafe extern "system" fn NumberOfExistingTracks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4695 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4696 let this = (*this).get_impl();
4697 match this.NumberOfExistingTracks() {
4698 ::core::result::Result::Ok(ok__) => {
4699 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4700 ::windows::core::HRESULT(0)
4701 }
4702 ::core::result::Result::Err(err) => err.into(),
4703 }
4704 }
4705 unsafe extern "system" fn LastUsedUserSectorInImage<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4706 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4707 let this = (*this).get_impl();
4708 match this.LastUsedUserSectorInImage() {
4709 ::core::result::Result::Ok(ok__) => {
4710 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4711 ::windows::core::HRESULT(0)
4712 }
4713 ::core::result::Result::Err(err) => err.into(),
4714 }
4715 }
4716 unsafe extern "system" fn ExpectedTableOfContents<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageCreator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
4717 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4718 let this = (*this).get_impl();
4719 match this.ExpectedTableOfContents() {
4720 ::core::result::Result::Ok(ok__) => {
4721 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4722 ::windows::core::HRESULT(0)
4723 }
4724 ::core::result::Result::Err(err) => err.into(),
4725 }
4726 }
4727 Self {
4728 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4729 CreateResultImage: CreateResultImage::<Identity, Impl, OFFSET>,
4730 AddTrack: AddTrack::<Identity, Impl, OFFSET>,
4731 AddSpecialPregap: AddSpecialPregap::<Identity, Impl, OFFSET>,
4732 AddSubcodeRWGenerator: AddSubcodeRWGenerator::<Identity, Impl, OFFSET>,
4733 SetResultingImageType: SetResultingImageType::<Identity, Impl, OFFSET>,
4734 ResultingImageType: ResultingImageType::<Identity, Impl, OFFSET>,
4735 StartOfLeadout: StartOfLeadout::<Identity, Impl, OFFSET>,
4736 SetStartOfLeadoutLimit: SetStartOfLeadoutLimit::<Identity, Impl, OFFSET>,
4737 StartOfLeadoutLimit: StartOfLeadoutLimit::<Identity, Impl, OFFSET>,
4738 SetDisableGaplessAudio: SetDisableGaplessAudio::<Identity, Impl, OFFSET>,
4739 DisableGaplessAudio: DisableGaplessAudio::<Identity, Impl, OFFSET>,
4740 SetMediaCatalogNumber: SetMediaCatalogNumber::<Identity, Impl, OFFSET>,
4741 MediaCatalogNumber: MediaCatalogNumber::<Identity, Impl, OFFSET>,
4742 SetStartingTrackNumber: SetStartingTrackNumber::<Identity, Impl, OFFSET>,
4743 StartingTrackNumber: StartingTrackNumber::<Identity, Impl, OFFSET>,
4744 get_TrackInfo: get_TrackInfo::<Identity, Impl, OFFSET>,
4745 NumberOfExistingTracks: NumberOfExistingTracks::<Identity, Impl, OFFSET>,
4746 LastUsedUserSectorInImage: LastUsedUserSectorInImage::<Identity, Impl, OFFSET>,
4747 ExpectedTableOfContents: ExpectedTableOfContents::<Identity, Impl, OFFSET>,
4748 }
4749 }
4750 pub fn matches(iid: &windows::core::GUID) -> bool {
4751 iid == &<IRawCDImageCreator as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4752 }
4753}
4754#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
4755#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4756pub trait IRawCDImageTrackInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
4757 fn StartingLba(&self) -> ::windows::core::Result<i32>;
4758 fn SectorCount(&self) -> ::windows::core::Result<i32>;
4759 fn TrackNumber(&self) -> ::windows::core::Result<i32>;
4760 fn SectorType(&self) -> ::windows::core::Result<IMAPI_CD_SECTOR_TYPE>;
4761 fn ISRC(&self) -> ::windows::core::Result<::windows::core::BSTR>;
4762 fn SetISRC(&self, value: &::windows::core::BSTR) -> ::windows::core::Result<()>;
4763 fn DigitalAudioCopySetting(&self) -> ::windows::core::Result<IMAPI_CD_TRACK_DIGITAL_COPY_SETTING>;
4764 fn SetDigitalAudioCopySetting(&self, value: IMAPI_CD_TRACK_DIGITAL_COPY_SETTING) -> ::windows::core::Result<()>;
4765 fn AudioHasPreemphasis(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
4766 fn SetAudioHasPreemphasis(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
4767 fn TrackIndexes(&self) -> ::windows::core::Result<*mut super::super::System::Com::SAFEARRAY>;
4768 fn AddTrackIndex(&self, lbaoffset: i32) -> ::windows::core::Result<()>;
4769 fn ClearTrackIndex(&self, lbaoffset: i32) -> ::windows::core::Result<()>;
4770}
4771#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4772impl ::windows::core::RuntimeName for IRawCDImageTrackInfo {}
4773#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
4774impl IRawCDImageTrackInfo_Vtbl {
4775 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>() -> IRawCDImageTrackInfo_Vtbl {
4776 unsafe extern "system" fn StartingLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4777 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4778 let this = (*this).get_impl();
4779 match this.StartingLba() {
4780 ::core::result::Result::Ok(ok__) => {
4781 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4782 ::windows::core::HRESULT(0)
4783 }
4784 ::core::result::Result::Err(err) => err.into(),
4785 }
4786 }
4787 unsafe extern "system" fn SectorCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4788 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4789 let this = (*this).get_impl();
4790 match this.SectorCount() {
4791 ::core::result::Result::Ok(ok__) => {
4792 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4793 ::windows::core::HRESULT(0)
4794 }
4795 ::core::result::Result::Err(err) => err.into(),
4796 }
4797 }
4798 unsafe extern "system" fn TrackNumber<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
4799 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4800 let this = (*this).get_impl();
4801 match this.TrackNumber() {
4802 ::core::result::Result::Ok(ok__) => {
4803 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4804 ::windows::core::HRESULT(0)
4805 }
4806 ::core::result::Result::Err(err) => err.into(),
4807 }
4808 }
4809 unsafe extern "system" fn SectorType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_CD_SECTOR_TYPE) -> ::windows::core::HRESULT {
4810 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4811 let this = (*this).get_impl();
4812 match this.SectorType() {
4813 ::core::result::Result::Ok(ok__) => {
4814 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4815 ::windows::core::HRESULT(0)
4816 }
4817 ::core::result::Result::Err(err) => err.into(),
4818 }
4819 }
4820 unsafe extern "system" fn ISRC<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4821 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4822 let this = (*this).get_impl();
4823 match this.ISRC() {
4824 ::core::result::Result::Ok(ok__) => {
4825 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4826 ::windows::core::HRESULT(0)
4827 }
4828 ::core::result::Result::Err(err) => err.into(),
4829 }
4830 }
4831 unsafe extern "system" fn SetISRC<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: ::std::mem::MaybeUninit<::windows::core::BSTR>) -> ::windows::core::HRESULT {
4832 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4833 let this = (*this).get_impl();
4834 this.SetISRC(::core::mem::transmute(&value)).into()
4835 }
4836 unsafe extern "system" fn DigitalAudioCopySetting<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_CD_TRACK_DIGITAL_COPY_SETTING) -> ::windows::core::HRESULT {
4837 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4838 let this = (*this).get_impl();
4839 match this.DigitalAudioCopySetting() {
4840 ::core::result::Result::Ok(ok__) => {
4841 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4842 ::windows::core::HRESULT(0)
4843 }
4844 ::core::result::Result::Err(err) => err.into(),
4845 }
4846 }
4847 unsafe extern "system" fn SetDigitalAudioCopySetting<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: IMAPI_CD_TRACK_DIGITAL_COPY_SETTING) -> ::windows::core::HRESULT {
4848 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4849 let this = (*this).get_impl();
4850 this.SetDigitalAudioCopySetting(::core::mem::transmute_copy(&value)).into()
4851 }
4852 unsafe extern "system" fn AudioHasPreemphasis<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4853 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4854 let this = (*this).get_impl();
4855 match this.AudioHasPreemphasis() {
4856 ::core::result::Result::Ok(ok__) => {
4857 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4858 ::windows::core::HRESULT(0)
4859 }
4860 ::core::result::Result::Err(err) => err.into(),
4861 }
4862 }
4863 unsafe extern "system" fn SetAudioHasPreemphasis<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
4864 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4865 let this = (*this).get_impl();
4866 this.SetAudioHasPreemphasis(::core::mem::transmute_copy(&value)).into()
4867 }
4868 unsafe extern "system" fn TrackIndexes<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows::core::HRESULT {
4869 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4870 let this = (*this).get_impl();
4871 match this.TrackIndexes() {
4872 ::core::result::Result::Ok(ok__) => {
4873 ::core::ptr::write(value, ::core::mem::transmute(ok__));
4874 ::windows::core::HRESULT(0)
4875 }
4876 ::core::result::Result::Err(err) => err.into(),
4877 }
4878 }
4879 unsafe extern "system" fn AddTrackIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lbaoffset: i32) -> ::windows::core::HRESULT {
4880 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4881 let this = (*this).get_impl();
4882 this.AddTrackIndex(::core::mem::transmute_copy(&lbaoffset)).into()
4883 }
4884 unsafe extern "system" fn ClearTrackIndex<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRawCDImageTrackInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lbaoffset: i32) -> ::windows::core::HRESULT {
4885 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4886 let this = (*this).get_impl();
4887 this.ClearTrackIndex(::core::mem::transmute_copy(&lbaoffset)).into()
4888 }
4889 Self {
4890 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
4891 StartingLba: StartingLba::<Identity, Impl, OFFSET>,
4892 SectorCount: SectorCount::<Identity, Impl, OFFSET>,
4893 TrackNumber: TrackNumber::<Identity, Impl, OFFSET>,
4894 SectorType: SectorType::<Identity, Impl, OFFSET>,
4895 ISRC: ISRC::<Identity, Impl, OFFSET>,
4896 SetISRC: SetISRC::<Identity, Impl, OFFSET>,
4897 DigitalAudioCopySetting: DigitalAudioCopySetting::<Identity, Impl, OFFSET>,
4898 SetDigitalAudioCopySetting: SetDigitalAudioCopySetting::<Identity, Impl, OFFSET>,
4899 AudioHasPreemphasis: AudioHasPreemphasis::<Identity, Impl, OFFSET>,
4900 SetAudioHasPreemphasis: SetAudioHasPreemphasis::<Identity, Impl, OFFSET>,
4901 TrackIndexes: TrackIndexes::<Identity, Impl, OFFSET>,
4902 AddTrackIndex: AddTrackIndex::<Identity, Impl, OFFSET>,
4903 ClearTrackIndex: ClearTrackIndex::<Identity, Impl, OFFSET>,
4904 }
4905 }
4906 pub fn matches(iid: &windows::core::GUID) -> bool {
4907 iid == &<IRawCDImageTrackInfo as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
4908 }
4909}
4910#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"implement\"`*"]
4911pub trait IRedbookDiscMaster_Impl: Sized {
4912 fn GetTotalAudioTracks(&self) -> ::windows::core::Result<i32>;
4913 fn GetTotalAudioBlocks(&self) -> ::windows::core::Result<i32>;
4914 fn GetUsedAudioBlocks(&self) -> ::windows::core::Result<i32>;
4915 fn GetAvailableAudioTrackBlocks(&self) -> ::windows::core::Result<i32>;
4916 fn GetAudioBlockSize(&self) -> ::windows::core::Result<i32>;
4917 fn CreateAudioTrack(&self, nblocks: i32) -> ::windows::core::Result<()>;
4918 fn AddAudioTrackBlocks(&self, pby: *const u8, cb: i32) -> ::windows::core::Result<()>;
4919 fn CloseAudioTrack(&self) -> ::windows::core::Result<()>;
4920}
4921impl ::windows::core::RuntimeName for IRedbookDiscMaster {}
4922impl IRedbookDiscMaster_Vtbl {
4923 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>() -> IRedbookDiscMaster_Vtbl {
4924 unsafe extern "system" fn GetTotalAudioTracks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pntracks: *mut i32) -> ::windows::core::HRESULT {
4925 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4926 let this = (*this).get_impl();
4927 match this.GetTotalAudioTracks() {
4928 ::core::result::Result::Ok(ok__) => {
4929 ::core::ptr::write(pntracks, ::core::mem::transmute(ok__));
4930 ::windows::core::HRESULT(0)
4931 }
4932 ::core::result::Result::Err(err) => err.into(),
4933 }
4934 }
4935 unsafe extern "system" fn GetTotalAudioBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblocks: *mut i32) -> ::windows::core::HRESULT {
4936 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4937 let this = (*this).get_impl();
4938 match this.GetTotalAudioBlocks() {
4939 ::core::result::Result::Ok(ok__) => {
4940 ::core::ptr::write(pnblocks, ::core::mem::transmute(ok__));
4941 ::windows::core::HRESULT(0)
4942 }
4943 ::core::result::Result::Err(err) => err.into(),
4944 }
4945 }
4946 unsafe extern "system" fn GetUsedAudioBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblocks: *mut i32) -> ::windows::core::HRESULT {
4947 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4948 let this = (*this).get_impl();
4949 match this.GetUsedAudioBlocks() {
4950 ::core::result::Result::Ok(ok__) => {
4951 ::core::ptr::write(pnblocks, ::core::mem::transmute(ok__));
4952 ::windows::core::HRESULT(0)
4953 }
4954 ::core::result::Result::Err(err) => err.into(),
4955 }
4956 }
4957 unsafe extern "system" fn GetAvailableAudioTrackBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblocks: *mut i32) -> ::windows::core::HRESULT {
4958 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4959 let this = (*this).get_impl();
4960 match this.GetAvailableAudioTrackBlocks() {
4961 ::core::result::Result::Ok(ok__) => {
4962 ::core::ptr::write(pnblocks, ::core::mem::transmute(ok__));
4963 ::windows::core::HRESULT(0)
4964 }
4965 ::core::result::Result::Err(err) => err.into(),
4966 }
4967 }
4968 unsafe extern "system" fn GetAudioBlockSize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnblockbytes: *mut i32) -> ::windows::core::HRESULT {
4969 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4970 let this = (*this).get_impl();
4971 match this.GetAudioBlockSize() {
4972 ::core::result::Result::Ok(ok__) => {
4973 ::core::ptr::write(pnblockbytes, ::core::mem::transmute(ok__));
4974 ::windows::core::HRESULT(0)
4975 }
4976 ::core::result::Result::Err(err) => err.into(),
4977 }
4978 }
4979 unsafe extern "system" fn CreateAudioTrack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, nblocks: i32) -> ::windows::core::HRESULT {
4980 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4981 let this = (*this).get_impl();
4982 this.CreateAudioTrack(::core::mem::transmute_copy(&nblocks)).into()
4983 }
4984 unsafe extern "system" fn AddAudioTrackBlocks<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pby: *const u8, cb: i32) -> ::windows::core::HRESULT {
4985 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4986 let this = (*this).get_impl();
4987 this.AddAudioTrackBlocks(::core::mem::transmute_copy(&pby), ::core::mem::transmute_copy(&cb)).into()
4988 }
4989 unsafe extern "system" fn CloseAudioTrack<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IRedbookDiscMaster_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
4990 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
4991 let this = (*this).get_impl();
4992 this.CloseAudioTrack().into()
4993 }
4994 Self {
4995 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
4996 GetTotalAudioTracks: GetTotalAudioTracks::<Identity, Impl, OFFSET>,
4997 GetTotalAudioBlocks: GetTotalAudioBlocks::<Identity, Impl, OFFSET>,
4998 GetUsedAudioBlocks: GetUsedAudioBlocks::<Identity, Impl, OFFSET>,
4999 GetAvailableAudioTrackBlocks: GetAvailableAudioTrackBlocks::<Identity, Impl, OFFSET>,
5000 GetAudioBlockSize: GetAudioBlockSize::<Identity, Impl, OFFSET>,
5001 CreateAudioTrack: CreateAudioTrack::<Identity, Impl, OFFSET>,
5002 AddAudioTrackBlocks: AddAudioTrackBlocks::<Identity, Impl, OFFSET>,
5003 CloseAudioTrack: CloseAudioTrack::<Identity, Impl, OFFSET>,
5004 }
5005 }
5006 pub fn matches(iid: &windows::core::GUID) -> bool {
5007 iid == &<IRedbookDiscMaster as ::windows::core::ComInterface>::IID
5008 }
5009}
5010#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
5011#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5012pub trait IStreamConcatenate_Impl: Sized + super::super::System::Com::IStream_Impl {
5013 fn Initialize(&self, stream1: ::core::option::Option<&super::super::System::Com::IStream>, stream2: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
5014 fn Initialize2(&self, streams: *const ::core::option::Option<super::super::System::Com::IStream>, streamcount: u32) -> ::windows::core::Result<()>;
5015 fn Append(&self, stream: ::core::option::Option<&super::super::System::Com::IStream>) -> ::windows::core::Result<()>;
5016 fn Append2(&self, streams: *const ::core::option::Option<super::super::System::Com::IStream>, streamcount: u32) -> ::windows::core::Result<()>;
5017}
5018#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5019impl ::windows::core::RuntimeName for IStreamConcatenate {}
5020#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5021impl IStreamConcatenate_Vtbl {
5022 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamConcatenate_Impl, const OFFSET: isize>() -> IStreamConcatenate_Vtbl {
5023 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamConcatenate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, stream1: *mut ::core::ffi::c_void, stream2: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
5024 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5025 let this = (*this).get_impl();
5026 this.Initialize(::windows::core::from_raw_borrowed(&stream1), ::windows::core::from_raw_borrowed(&stream2)).into()
5027 }
5028 unsafe extern "system" fn Initialize2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamConcatenate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streams: *const *mut ::core::ffi::c_void, streamcount: u32) -> ::windows::core::HRESULT {
5029 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5030 let this = (*this).get_impl();
5031 this.Initialize2(::core::mem::transmute_copy(&streams), ::core::mem::transmute_copy(&streamcount)).into()
5032 }
5033 unsafe extern "system" fn Append<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamConcatenate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, stream: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
5034 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5035 let this = (*this).get_impl();
5036 this.Append(::windows::core::from_raw_borrowed(&stream)).into()
5037 }
5038 unsafe extern "system" fn Append2<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamConcatenate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streams: *const *mut ::core::ffi::c_void, streamcount: u32) -> ::windows::core::HRESULT {
5039 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5040 let this = (*this).get_impl();
5041 this.Append2(::core::mem::transmute_copy(&streams), ::core::mem::transmute_copy(&streamcount)).into()
5042 }
5043 Self {
5044 base__: super::super::System::Com::IStream_Vtbl::new::<Identity, Impl, OFFSET>(),
5045 Initialize: Initialize::<Identity, Impl, OFFSET>,
5046 Initialize2: Initialize2::<Identity, Impl, OFFSET>,
5047 Append: Append::<Identity, Impl, OFFSET>,
5048 Append2: Append2::<Identity, Impl, OFFSET>,
5049 }
5050 }
5051 pub fn matches(iid: &windows::core::GUID) -> bool {
5052 iid == &<IStreamConcatenate 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
5053 }
5054}
5055#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
5056#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5057pub trait IStreamInterleave_Impl: Sized + super::super::System::Com::IStream_Impl {
5058 fn Initialize(&self, streams: *const ::core::option::Option<super::super::System::Com::IStream>, interleavesizes: *const u32, streamcount: u32) -> ::windows::core::Result<()>;
5059}
5060#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5061impl ::windows::core::RuntimeName for IStreamInterleave {}
5062#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5063impl IStreamInterleave_Vtbl {
5064 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamInterleave_Impl, const OFFSET: isize>() -> IStreamInterleave_Vtbl {
5065 unsafe extern "system" fn Initialize<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamInterleave_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streams: *const *mut ::core::ffi::c_void, interleavesizes: *const u32, streamcount: u32) -> ::windows::core::HRESULT {
5066 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5067 let this = (*this).get_impl();
5068 this.Initialize(::core::mem::transmute_copy(&streams), ::core::mem::transmute_copy(&interleavesizes), ::core::mem::transmute_copy(&streamcount)).into()
5069 }
5070 Self { base__: super::super::System::Com::IStream_Vtbl::new::<Identity, Impl, OFFSET>(), Initialize: Initialize::<Identity, Impl, OFFSET> }
5071 }
5072 pub fn matches(iid: &windows::core::GUID) -> bool {
5073 iid == &<IStreamInterleave 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
5074 }
5075}
5076#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
5077#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5078pub trait IStreamPseudoRandomBased_Impl: Sized + super::super::System::Com::IStream_Impl {
5079 fn SetSeed(&self, value: u32) -> ::windows::core::Result<()>;
5080 fn Seed(&self) -> ::windows::core::Result<u32>;
5081 fn put_ExtendedSeed(&self, values: *const u32, ecount: u32) -> ::windows::core::Result<()>;
5082 fn get_ExtendedSeed(&self, values: *mut *mut u32, ecount: *mut u32) -> ::windows::core::Result<()>;
5083}
5084#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5085impl ::windows::core::RuntimeName for IStreamPseudoRandomBased {}
5086#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
5087impl IStreamPseudoRandomBased_Vtbl {
5088 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamPseudoRandomBased_Impl, const OFFSET: isize>() -> IStreamPseudoRandomBased_Vtbl {
5089 unsafe extern "system" fn SetSeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamPseudoRandomBased_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: u32) -> ::windows::core::HRESULT {
5090 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5091 let this = (*this).get_impl();
5092 this.SetSeed(::core::mem::transmute_copy(&value)).into()
5093 }
5094 unsafe extern "system" fn Seed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamPseudoRandomBased_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut u32) -> ::windows::core::HRESULT {
5095 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5096 let this = (*this).get_impl();
5097 match this.Seed() {
5098 ::core::result::Result::Ok(ok__) => {
5099 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5100 ::windows::core::HRESULT(0)
5101 }
5102 ::core::result::Result::Err(err) => err.into(),
5103 }
5104 }
5105 unsafe extern "system" fn put_ExtendedSeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamPseudoRandomBased_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, values: *const u32, ecount: u32) -> ::windows::core::HRESULT {
5106 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5107 let this = (*this).get_impl();
5108 this.put_ExtendedSeed(::core::mem::transmute_copy(&values), ::core::mem::transmute_copy(&ecount)).into()
5109 }
5110 unsafe extern "system" fn get_ExtendedSeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IStreamPseudoRandomBased_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, values: *mut *mut u32, ecount: *mut u32) -> ::windows::core::HRESULT {
5111 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5112 let this = (*this).get_impl();
5113 this.get_ExtendedSeed(::core::mem::transmute_copy(&values), ::core::mem::transmute_copy(&ecount)).into()
5114 }
5115 Self {
5116 base__: super::super::System::Com::IStream_Vtbl::new::<Identity, Impl, OFFSET>(),
5117 SetSeed: SetSeed::<Identity, Impl, OFFSET>,
5118 Seed: Seed::<Identity, Impl, OFFSET>,
5119 put_ExtendedSeed: put_ExtendedSeed::<Identity, Impl, OFFSET>,
5120 get_ExtendedSeed: get_ExtendedSeed::<Identity, Impl, OFFSET>,
5121 }
5122 }
5123 pub fn matches(iid: &windows::core::GUID) -> bool {
5124 iid == &<IStreamPseudoRandomBased 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
5125 }
5126}
5127#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
5128#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5129pub trait IWriteEngine2_Impl: Sized + super::super::System::Com::IDispatch_Impl {
5130 fn WriteSection(&self, data: ::core::option::Option<&super::super::System::Com::IStream>, startingblockaddress: i32, numberofblocks: i32) -> ::windows::core::Result<()>;
5131 fn CancelWrite(&self) -> ::windows::core::Result<()>;
5132 fn SetRecorder(&self, value: ::core::option::Option<&IDiscRecorder2Ex>) -> ::windows::core::Result<()>;
5133 fn Recorder(&self) -> ::windows::core::Result<IDiscRecorder2Ex>;
5134 fn SetUseStreamingWrite12(&self, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::Result<()>;
5135 fn UseStreamingWrite12(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
5136 fn SetStartingSectorsPerSecond(&self, value: i32) -> ::windows::core::Result<()>;
5137 fn StartingSectorsPerSecond(&self) -> ::windows::core::Result<i32>;
5138 fn SetEndingSectorsPerSecond(&self, value: i32) -> ::windows::core::Result<()>;
5139 fn EndingSectorsPerSecond(&self) -> ::windows::core::Result<i32>;
5140 fn SetBytesPerSector(&self, value: i32) -> ::windows::core::Result<()>;
5141 fn BytesPerSector(&self) -> ::windows::core::Result<i32>;
5142 fn WriteInProgress(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
5143}
5144#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5145impl ::windows::core::RuntimeName for IWriteEngine2 {}
5146#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5147impl IWriteEngine2_Vtbl {
5148 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>() -> IWriteEngine2_Vtbl {
5149 unsafe extern "system" fn WriteSection<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, data: *mut ::core::ffi::c_void, startingblockaddress: i32, numberofblocks: i32) -> ::windows::core::HRESULT {
5150 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5151 let this = (*this).get_impl();
5152 this.WriteSection(::windows::core::from_raw_borrowed(&data), ::core::mem::transmute_copy(&startingblockaddress), ::core::mem::transmute_copy(&numberofblocks)).into()
5153 }
5154 unsafe extern "system" fn CancelWrite<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
5155 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5156 let this = (*this).get_impl();
5157 this.CancelWrite().into()
5158 }
5159 unsafe extern "system" fn SetRecorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
5160 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5161 let this = (*this).get_impl();
5162 this.SetRecorder(::windows::core::from_raw_borrowed(&value)).into()
5163 }
5164 unsafe extern "system" fn Recorder<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
5165 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5166 let this = (*this).get_impl();
5167 match this.Recorder() {
5168 ::core::result::Result::Ok(ok__) => {
5169 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5170 ::windows::core::HRESULT(0)
5171 }
5172 ::core::result::Result::Err(err) => err.into(),
5173 }
5174 }
5175 unsafe extern "system" fn SetUseStreamingWrite12<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
5176 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5177 let this = (*this).get_impl();
5178 this.SetUseStreamingWrite12(::core::mem::transmute_copy(&value)).into()
5179 }
5180 unsafe extern "system" fn UseStreamingWrite12<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
5181 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5182 let this = (*this).get_impl();
5183 match this.UseStreamingWrite12() {
5184 ::core::result::Result::Ok(ok__) => {
5185 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5186 ::windows::core::HRESULT(0)
5187 }
5188 ::core::result::Result::Err(err) => err.into(),
5189 }
5190 }
5191 unsafe extern "system" fn SetStartingSectorsPerSecond<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT {
5192 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5193 let this = (*this).get_impl();
5194 this.SetStartingSectorsPerSecond(::core::mem::transmute_copy(&value)).into()
5195 }
5196 unsafe extern "system" fn StartingSectorsPerSecond<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5197 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5198 let this = (*this).get_impl();
5199 match this.StartingSectorsPerSecond() {
5200 ::core::result::Result::Ok(ok__) => {
5201 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5202 ::windows::core::HRESULT(0)
5203 }
5204 ::core::result::Result::Err(err) => err.into(),
5205 }
5206 }
5207 unsafe extern "system" fn SetEndingSectorsPerSecond<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT {
5208 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5209 let this = (*this).get_impl();
5210 this.SetEndingSectorsPerSecond(::core::mem::transmute_copy(&value)).into()
5211 }
5212 unsafe extern "system" fn EndingSectorsPerSecond<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5213 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5214 let this = (*this).get_impl();
5215 match this.EndingSectorsPerSecond() {
5216 ::core::result::Result::Ok(ok__) => {
5217 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5218 ::windows::core::HRESULT(0)
5219 }
5220 ::core::result::Result::Err(err) => err.into(),
5221 }
5222 }
5223 unsafe extern "system" fn SetBytesPerSector<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows::core::HRESULT {
5224 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5225 let this = (*this).get_impl();
5226 this.SetBytesPerSector(::core::mem::transmute_copy(&value)).into()
5227 }
5228 unsafe extern "system" fn BytesPerSector<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5229 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5230 let this = (*this).get_impl();
5231 match this.BytesPerSector() {
5232 ::core::result::Result::Ok(ok__) => {
5233 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5234 ::windows::core::HRESULT(0)
5235 }
5236 ::core::result::Result::Err(err) => err.into(),
5237 }
5238 }
5239 unsafe extern "system" fn WriteInProgress<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
5240 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5241 let this = (*this).get_impl();
5242 match this.WriteInProgress() {
5243 ::core::result::Result::Ok(ok__) => {
5244 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5245 ::windows::core::HRESULT(0)
5246 }
5247 ::core::result::Result::Err(err) => err.into(),
5248 }
5249 }
5250 Self {
5251 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
5252 WriteSection: WriteSection::<Identity, Impl, OFFSET>,
5253 CancelWrite: CancelWrite::<Identity, Impl, OFFSET>,
5254 SetRecorder: SetRecorder::<Identity, Impl, OFFSET>,
5255 Recorder: Recorder::<Identity, Impl, OFFSET>,
5256 SetUseStreamingWrite12: SetUseStreamingWrite12::<Identity, Impl, OFFSET>,
5257 UseStreamingWrite12: UseStreamingWrite12::<Identity, Impl, OFFSET>,
5258 SetStartingSectorsPerSecond: SetStartingSectorsPerSecond::<Identity, Impl, OFFSET>,
5259 StartingSectorsPerSecond: StartingSectorsPerSecond::<Identity, Impl, OFFSET>,
5260 SetEndingSectorsPerSecond: SetEndingSectorsPerSecond::<Identity, Impl, OFFSET>,
5261 EndingSectorsPerSecond: EndingSectorsPerSecond::<Identity, Impl, OFFSET>,
5262 SetBytesPerSector: SetBytesPerSector::<Identity, Impl, OFFSET>,
5263 BytesPerSector: BytesPerSector::<Identity, Impl, OFFSET>,
5264 WriteInProgress: WriteInProgress::<Identity, Impl, OFFSET>,
5265 }
5266 }
5267 pub fn matches(iid: &windows::core::GUID) -> bool {
5268 iid == &<IWriteEngine2 as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
5269 }
5270}
5271#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
5272#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5273pub trait IWriteEngine2EventArgs_Impl: Sized + super::super::System::Com::IDispatch_Impl {
5274 fn StartLba(&self) -> ::windows::core::Result<i32>;
5275 fn SectorCount(&self) -> ::windows::core::Result<i32>;
5276 fn LastReadLba(&self) -> ::windows::core::Result<i32>;
5277 fn LastWrittenLba(&self) -> ::windows::core::Result<i32>;
5278 fn TotalSystemBuffer(&self) -> ::windows::core::Result<i32>;
5279 fn UsedSystemBuffer(&self) -> ::windows::core::Result<i32>;
5280 fn FreeSystemBuffer(&self) -> ::windows::core::Result<i32>;
5281}
5282#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5283impl ::windows::core::RuntimeName for IWriteEngine2EventArgs {}
5284#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5285impl IWriteEngine2EventArgs_Vtbl {
5286 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>() -> IWriteEngine2EventArgs_Vtbl {
5287 unsafe extern "system" fn StartLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5288 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5289 let this = (*this).get_impl();
5290 match this.StartLba() {
5291 ::core::result::Result::Ok(ok__) => {
5292 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5293 ::windows::core::HRESULT(0)
5294 }
5295 ::core::result::Result::Err(err) => err.into(),
5296 }
5297 }
5298 unsafe extern "system" fn SectorCount<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5299 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5300 let this = (*this).get_impl();
5301 match this.SectorCount() {
5302 ::core::result::Result::Ok(ok__) => {
5303 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5304 ::windows::core::HRESULT(0)
5305 }
5306 ::core::result::Result::Err(err) => err.into(),
5307 }
5308 }
5309 unsafe extern "system" fn LastReadLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5310 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5311 let this = (*this).get_impl();
5312 match this.LastReadLba() {
5313 ::core::result::Result::Ok(ok__) => {
5314 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5315 ::windows::core::HRESULT(0)
5316 }
5317 ::core::result::Result::Err(err) => err.into(),
5318 }
5319 }
5320 unsafe extern "system" fn LastWrittenLba<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5321 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5322 let this = (*this).get_impl();
5323 match this.LastWrittenLba() {
5324 ::core::result::Result::Ok(ok__) => {
5325 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5326 ::windows::core::HRESULT(0)
5327 }
5328 ::core::result::Result::Err(err) => err.into(),
5329 }
5330 }
5331 unsafe extern "system" fn TotalSystemBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5332 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5333 let this = (*this).get_impl();
5334 match this.TotalSystemBuffer() {
5335 ::core::result::Result::Ok(ok__) => {
5336 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5337 ::windows::core::HRESULT(0)
5338 }
5339 ::core::result::Result::Err(err) => err.into(),
5340 }
5341 }
5342 unsafe extern "system" fn UsedSystemBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5343 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5344 let this = (*this).get_impl();
5345 match this.UsedSystemBuffer() {
5346 ::core::result::Result::Ok(ok__) => {
5347 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5348 ::windows::core::HRESULT(0)
5349 }
5350 ::core::result::Result::Err(err) => err.into(),
5351 }
5352 }
5353 unsafe extern "system" fn FreeSystemBuffer<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteEngine2EventArgs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5354 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5355 let this = (*this).get_impl();
5356 match this.FreeSystemBuffer() {
5357 ::core::result::Result::Ok(ok__) => {
5358 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5359 ::windows::core::HRESULT(0)
5360 }
5361 ::core::result::Result::Err(err) => err.into(),
5362 }
5363 }
5364 Self {
5365 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
5366 StartLba: StartLba::<Identity, Impl, OFFSET>,
5367 SectorCount: SectorCount::<Identity, Impl, OFFSET>,
5368 LastReadLba: LastReadLba::<Identity, Impl, OFFSET>,
5369 LastWrittenLba: LastWrittenLba::<Identity, Impl, OFFSET>,
5370 TotalSystemBuffer: TotalSystemBuffer::<Identity, Impl, OFFSET>,
5371 UsedSystemBuffer: UsedSystemBuffer::<Identity, Impl, OFFSET>,
5372 FreeSystemBuffer: FreeSystemBuffer::<Identity, Impl, OFFSET>,
5373 }
5374 }
5375 pub fn matches(iid: &windows::core::GUID) -> bool {
5376 iid == &<IWriteEngine2EventArgs as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
5377 }
5378}
5379#[doc = "*Required features: `\"Win32_Storage_Imapi\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
5380#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5381pub trait IWriteSpeedDescriptor_Impl: Sized + super::super::System::Com::IDispatch_Impl {
5382 fn MediaType(&self) -> ::windows::core::Result<IMAPI_MEDIA_PHYSICAL_TYPE>;
5383 fn RotationTypeIsPureCAV(&self) -> ::windows::core::Result<super::super::Foundation::VARIANT_BOOL>;
5384 fn WriteSpeed(&self) -> ::windows::core::Result<i32>;
5385}
5386#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5387impl ::windows::core::RuntimeName for IWriteSpeedDescriptor {}
5388#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole"))]
5389impl IWriteSpeedDescriptor_Vtbl {
5390 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteSpeedDescriptor_Impl, const OFFSET: isize>() -> IWriteSpeedDescriptor_Vtbl {
5391 unsafe extern "system" fn MediaType<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteSpeedDescriptor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut IMAPI_MEDIA_PHYSICAL_TYPE) -> ::windows::core::HRESULT {
5392 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5393 let this = (*this).get_impl();
5394 match this.MediaType() {
5395 ::core::result::Result::Ok(ok__) => {
5396 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5397 ::windows::core::HRESULT(0)
5398 }
5399 ::core::result::Result::Err(err) => err.into(),
5400 }
5401 }
5402 unsafe extern "system" fn RotationTypeIsPureCAV<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteSpeedDescriptor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows::core::HRESULT {
5403 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5404 let this = (*this).get_impl();
5405 match this.RotationTypeIsPureCAV() {
5406 ::core::result::Result::Ok(ok__) => {
5407 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5408 ::windows::core::HRESULT(0)
5409 }
5410 ::core::result::Result::Err(err) => err.into(),
5411 }
5412 }
5413 unsafe extern "system" fn WriteSpeed<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IWriteSpeedDescriptor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: *mut i32) -> ::windows::core::HRESULT {
5414 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
5415 let this = (*this).get_impl();
5416 match this.WriteSpeed() {
5417 ::core::result::Result::Ok(ok__) => {
5418 ::core::ptr::write(value, ::core::mem::transmute(ok__));
5419 ::windows::core::HRESULT(0)
5420 }
5421 ::core::result::Result::Err(err) => err.into(),
5422 }
5423 }
5424 Self {
5425 base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
5426 MediaType: MediaType::<Identity, Impl, OFFSET>,
5427 RotationTypeIsPureCAV: RotationTypeIsPureCAV::<Identity, Impl, OFFSET>,
5428 WriteSpeed: WriteSpeed::<Identity, Impl, OFFSET>,
5429 }
5430 }
5431 pub fn matches(iid: &windows::core::GUID) -> bool {
5432 iid == &<IWriteSpeedDescriptor as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows::core::ComInterface>::IID
5433 }
5434}