]> git.proxmox.com Git - rustc.git/blame - vendor/windows/src/Windows/Win32/Media/Multimedia/impl.rs
New upstream version 1.70.0+dfsg1
[rustc.git] / vendor / windows / src / Windows / Win32 / Media / Multimedia / impl.rs
CommitLineData
353b0b11
FG
1#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
2#[cfg(feature = "Win32_Foundation")]
3pub trait IAVIEditStream_Impl: Sized {
4 fn Cut(&self, plstart: *mut i32, pllength: *mut i32, ppresult: *mut ::core::option::Option<IAVIStream>) -> ::windows::core::Result<()>;
5 fn Copy(&self, plstart: *mut i32, pllength: *mut i32, ppresult: *mut ::core::option::Option<IAVIStream>) -> ::windows::core::Result<()>;
6 fn Paste(&self, plpos: *mut i32, pllength: *mut i32, pstream: ::core::option::Option<&IAVIStream>, lstart: i32, lend: i32) -> ::windows::core::Result<()>;
7 fn Clone(&self) -> ::windows::core::Result<IAVIStream>;
8 fn SetInfo(&self, lpinfo: *const AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::Result<()>;
9}
10#[cfg(feature = "Win32_Foundation")]
11impl ::windows::core::RuntimeName for IAVIEditStream {}
12#[cfg(feature = "Win32_Foundation")]
13impl IAVIEditStream_Vtbl {
14 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>() -> IAVIEditStream_Vtbl {
15 unsafe extern "system" fn Cut<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plstart: *mut i32, pllength: *mut i32, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
16 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
17 let this = (*this).get_impl();
18 this.Cut(::core::mem::transmute_copy(&plstart), ::core::mem::transmute_copy(&pllength), ::core::mem::transmute_copy(&ppresult)).into()
19 }
20 unsafe extern "system" fn Copy<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plstart: *mut i32, pllength: *mut i32, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
21 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
22 let this = (*this).get_impl();
23 this.Copy(::core::mem::transmute_copy(&plstart), ::core::mem::transmute_copy(&pllength), ::core::mem::transmute_copy(&ppresult)).into()
24 }
25 unsafe extern "system" fn Paste<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plpos: *mut i32, pllength: *mut i32, pstream: *mut ::core::ffi::c_void, lstart: i32, lend: i32) -> ::windows::core::HRESULT {
26 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
27 let this = (*this).get_impl();
28 this.Paste(::core::mem::transmute_copy(&plpos), ::core::mem::transmute_copy(&pllength), ::windows::core::from_raw_borrowed(&pstream), ::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lend)).into()
29 }
30 unsafe extern "system" fn Clone<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppresult: *mut *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
31 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
32 let this = (*this).get_impl();
33 match this.Clone() {
34 ::core::result::Result::Ok(ok__) => {
35 ::core::ptr::write(ppresult, ::core::mem::transmute(ok__));
36 ::windows::core::HRESULT(0)
37 }
38 ::core::result::Result::Err(err) => err.into(),
39 }
40 }
41 unsafe extern "system" fn SetInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIEditStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpinfo: *const AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::HRESULT {
42 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
43 let this = (*this).get_impl();
44 this.SetInfo(::core::mem::transmute_copy(&lpinfo), ::core::mem::transmute_copy(&cbinfo)).into()
45 }
46 Self {
47 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
48 Cut: Cut::<Identity, Impl, OFFSET>,
49 Copy: Copy::<Identity, Impl, OFFSET>,
50 Paste: Paste::<Identity, Impl, OFFSET>,
51 Clone: Clone::<Identity, Impl, OFFSET>,
52 SetInfo: SetInfo::<Identity, Impl, OFFSET>,
53 }
54 }
55 pub fn matches(iid: &windows::core::GUID) -> bool {
56 iid == &<IAVIEditStream as ::windows::core::ComInterface>::IID
57 }
58}
59#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
60#[cfg(feature = "Win32_Foundation")]
61pub trait IAVIFile_Impl: Sized {
62 fn Info(&self, pfi: *mut AVIFILEINFOW, lsize: i32) -> ::windows::core::Result<()>;
63 fn GetStream(&self, ppstream: *mut ::core::option::Option<IAVIStream>, fcctype: u32, lparam: i32) -> ::windows::core::Result<()>;
64 fn CreateStream(&self, ppstream: *mut ::core::option::Option<IAVIStream>, psi: *const AVISTREAMINFOW) -> ::windows::core::Result<()>;
65 fn WriteData(&self, ckid: u32, lpdata: *const ::core::ffi::c_void, cbdata: i32) -> ::windows::core::Result<()>;
66 fn ReadData(&self, ckid: u32, lpdata: *mut ::core::ffi::c_void, lpcbdata: *mut i32) -> ::windows::core::Result<()>;
67 fn EndRecord(&self) -> ::windows::core::Result<()>;
68 fn DeleteStream(&self, fcctype: u32, lparam: i32) -> ::windows::core::Result<()>;
69}
70#[cfg(feature = "Win32_Foundation")]
71impl ::windows::core::RuntimeName for IAVIFile {}
72#[cfg(feature = "Win32_Foundation")]
73impl IAVIFile_Vtbl {
74 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>() -> IAVIFile_Vtbl {
75 unsafe extern "system" fn Info<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfi: *mut AVIFILEINFOW, lsize: i32) -> ::windows::core::HRESULT {
76 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
77 let this = (*this).get_impl();
78 this.Info(::core::mem::transmute_copy(&pfi), ::core::mem::transmute_copy(&lsize)).into()
79 }
80 unsafe extern "system" fn GetStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppstream: *mut *mut ::core::ffi::c_void, fcctype: u32, lparam: i32) -> ::windows::core::HRESULT {
81 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
82 let this = (*this).get_impl();
83 this.GetStream(::core::mem::transmute_copy(&ppstream), ::core::mem::transmute_copy(&fcctype), ::core::mem::transmute_copy(&lparam)).into()
84 }
85 unsafe extern "system" fn CreateStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppstream: *mut *mut ::core::ffi::c_void, psi: *const AVISTREAMINFOW) -> ::windows::core::HRESULT {
86 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
87 let this = (*this).get_impl();
88 this.CreateStream(::core::mem::transmute_copy(&ppstream), ::core::mem::transmute_copy(&psi)).into()
89 }
90 unsafe extern "system" fn WriteData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ckid: u32, lpdata: *const ::core::ffi::c_void, cbdata: i32) -> ::windows::core::HRESULT {
91 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
92 let this = (*this).get_impl();
93 this.WriteData(::core::mem::transmute_copy(&ckid), ::core::mem::transmute_copy(&lpdata), ::core::mem::transmute_copy(&cbdata)).into()
94 }
95 unsafe extern "system" fn ReadData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ckid: u32, lpdata: *mut ::core::ffi::c_void, lpcbdata: *mut i32) -> ::windows::core::HRESULT {
96 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
97 let this = (*this).get_impl();
98 this.ReadData(::core::mem::transmute_copy(&ckid), ::core::mem::transmute_copy(&lpdata), ::core::mem::transmute_copy(&lpcbdata)).into()
99 }
100 unsafe extern "system" fn EndRecord<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
101 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
102 let this = (*this).get_impl();
103 this.EndRecord().into()
104 }
105 unsafe extern "system" fn DeleteStream<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcctype: u32, lparam: i32) -> ::windows::core::HRESULT {
106 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
107 let this = (*this).get_impl();
108 this.DeleteStream(::core::mem::transmute_copy(&fcctype), ::core::mem::transmute_copy(&lparam)).into()
109 }
110 Self {
111 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
112 Info: Info::<Identity, Impl, OFFSET>,
113 GetStream: GetStream::<Identity, Impl, OFFSET>,
114 CreateStream: CreateStream::<Identity, Impl, OFFSET>,
115 WriteData: WriteData::<Identity, Impl, OFFSET>,
116 ReadData: ReadData::<Identity, Impl, OFFSET>,
117 EndRecord: EndRecord::<Identity, Impl, OFFSET>,
118 DeleteStream: DeleteStream::<Identity, Impl, OFFSET>,
119 }
120 }
121 pub fn matches(iid: &windows::core::GUID) -> bool {
122 iid == &<IAVIFile as ::windows::core::ComInterface>::IID
123 }
124}
125#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
126#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
127pub trait IAVIPersistFile_Impl: Sized + super::super::System::Com::IPersistFile_Impl {
128 fn Reserved1(&self) -> ::windows::core::Result<()>;
129}
130#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
131impl ::windows::core::RuntimeName for IAVIPersistFile {}
132#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
133impl IAVIPersistFile_Vtbl {
134 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIPersistFile_Impl, const OFFSET: isize>() -> IAVIPersistFile_Vtbl {
135 unsafe extern "system" fn Reserved1<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIPersistFile_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
136 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
137 let this = (*this).get_impl();
138 this.Reserved1().into()
139 }
140 Self { base__: super::super::System::Com::IPersistFile_Vtbl::new::<Identity, Impl, OFFSET>(), Reserved1: Reserved1::<Identity, Impl, OFFSET> }
141 }
142 pub fn matches(iid: &windows::core::GUID) -> bool {
143 iid == &<IAVIPersistFile as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows::core::ComInterface>::IID || iid == &<super::super::System::Com::IPersistFile as ::windows::core::ComInterface>::IID
144 }
145}
146#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
147#[cfg(feature = "Win32_Foundation")]
148pub trait IAVIStream_Impl: Sized {
149 fn Create(&self, lparam1: super::super::Foundation::LPARAM, lparam2: super::super::Foundation::LPARAM) -> ::windows::core::Result<()>;
150 fn Info(&self, psi: *mut AVISTREAMINFOW, lsize: i32) -> ::windows::core::Result<()>;
151 fn FindSample(&self, lpos: i32, lflags: i32) -> i32;
152 fn ReadFormat(&self, lpos: i32, lpformat: *mut ::core::ffi::c_void, lpcbformat: *mut i32) -> ::windows::core::Result<()>;
153 fn SetFormat(&self, lpos: i32, lpformat: *const ::core::ffi::c_void, cbformat: i32) -> ::windows::core::Result<()>;
154 fn Read(&self, lstart: i32, lsamples: i32, lpbuffer: *mut ::core::ffi::c_void, cbbuffer: i32, plbytes: *mut i32, plsamples: *mut i32) -> ::windows::core::Result<()>;
155 fn Write(&self, lstart: i32, lsamples: i32, lpbuffer: *const ::core::ffi::c_void, cbbuffer: i32, dwflags: u32, plsampwritten: *mut i32, plbyteswritten: *mut i32) -> ::windows::core::Result<()>;
156 fn Delete(&self, lstart: i32, lsamples: i32) -> ::windows::core::Result<()>;
157 fn ReadData(&self, fcc: u32, lp: *mut ::core::ffi::c_void, lpcb: *mut i32) -> ::windows::core::Result<()>;
158 fn WriteData(&self, fcc: u32, lp: *const ::core::ffi::c_void, cb: i32) -> ::windows::core::Result<()>;
159 fn SetInfo(&self, lpinfo: *const AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::Result<()>;
160}
161#[cfg(feature = "Win32_Foundation")]
162impl ::windows::core::RuntimeName for IAVIStream {}
163#[cfg(feature = "Win32_Foundation")]
164impl IAVIStream_Vtbl {
165 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>() -> IAVIStream_Vtbl {
166 unsafe extern "system" fn Create<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lparam1: super::super::Foundation::LPARAM, lparam2: super::super::Foundation::LPARAM) -> ::windows::core::HRESULT {
167 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
168 let this = (*this).get_impl();
169 this.Create(::core::mem::transmute_copy(&lparam1), ::core::mem::transmute_copy(&lparam2)).into()
170 }
171 unsafe extern "system" fn Info<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psi: *mut AVISTREAMINFOW, lsize: i32) -> ::windows::core::HRESULT {
172 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
173 let this = (*this).get_impl();
174 this.Info(::core::mem::transmute_copy(&psi), ::core::mem::transmute_copy(&lsize)).into()
175 }
176 unsafe extern "system" fn FindSample<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpos: i32, lflags: i32) -> i32 {
177 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
178 let this = (*this).get_impl();
179 this.FindSample(::core::mem::transmute_copy(&lpos), ::core::mem::transmute_copy(&lflags))
180 }
181 unsafe extern "system" fn ReadFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpos: i32, lpformat: *mut ::core::ffi::c_void, lpcbformat: *mut i32) -> ::windows::core::HRESULT {
182 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
183 let this = (*this).get_impl();
184 this.ReadFormat(::core::mem::transmute_copy(&lpos), ::core::mem::transmute_copy(&lpformat), ::core::mem::transmute_copy(&lpcbformat)).into()
185 }
186 unsafe extern "system" fn SetFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpos: i32, lpformat: *const ::core::ffi::c_void, cbformat: i32) -> ::windows::core::HRESULT {
187 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
188 let this = (*this).get_impl();
189 this.SetFormat(::core::mem::transmute_copy(&lpos), ::core::mem::transmute_copy(&lpformat), ::core::mem::transmute_copy(&cbformat)).into()
190 }
191 unsafe extern "system" fn Read<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lstart: i32, lsamples: i32, lpbuffer: *mut ::core::ffi::c_void, cbbuffer: i32, plbytes: *mut i32, plsamples: *mut i32) -> ::windows::core::HRESULT {
192 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
193 let this = (*this).get_impl();
194 this.Read(::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lsamples), ::core::mem::transmute_copy(&lpbuffer), ::core::mem::transmute_copy(&cbbuffer), ::core::mem::transmute_copy(&plbytes), ::core::mem::transmute_copy(&plsamples)).into()
195 }
196 unsafe extern "system" fn Write<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lstart: i32, lsamples: i32, lpbuffer: *const ::core::ffi::c_void, cbbuffer: i32, dwflags: u32, plsampwritten: *mut i32, plbyteswritten: *mut i32) -> ::windows::core::HRESULT {
197 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
198 let this = (*this).get_impl();
199 this.Write(::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lsamples), ::core::mem::transmute_copy(&lpbuffer), ::core::mem::transmute_copy(&cbbuffer), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&plsampwritten), ::core::mem::transmute_copy(&plbyteswritten)).into()
200 }
201 unsafe extern "system" fn Delete<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lstart: i32, lsamples: i32) -> ::windows::core::HRESULT {
202 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
203 let this = (*this).get_impl();
204 this.Delete(::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lsamples)).into()
205 }
206 unsafe extern "system" fn ReadData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcc: u32, lp: *mut ::core::ffi::c_void, lpcb: *mut i32) -> ::windows::core::HRESULT {
207 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
208 let this = (*this).get_impl();
209 this.ReadData(::core::mem::transmute_copy(&fcc), ::core::mem::transmute_copy(&lp), ::core::mem::transmute_copy(&lpcb)).into()
210 }
211 unsafe extern "system" fn WriteData<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fcc: u32, lp: *const ::core::ffi::c_void, cb: i32) -> ::windows::core::HRESULT {
212 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
213 let this = (*this).get_impl();
214 this.WriteData(::core::mem::transmute_copy(&fcc), ::core::mem::transmute_copy(&lp), ::core::mem::transmute_copy(&cb)).into()
215 }
216 unsafe extern "system" fn SetInfo<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpinfo: *const AVISTREAMINFOW, cbinfo: i32) -> ::windows::core::HRESULT {
217 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
218 let this = (*this).get_impl();
219 this.SetInfo(::core::mem::transmute_copy(&lpinfo), ::core::mem::transmute_copy(&cbinfo)).into()
220 }
221 Self {
222 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
223 Create: Create::<Identity, Impl, OFFSET>,
224 Info: Info::<Identity, Impl, OFFSET>,
225 FindSample: FindSample::<Identity, Impl, OFFSET>,
226 ReadFormat: ReadFormat::<Identity, Impl, OFFSET>,
227 SetFormat: SetFormat::<Identity, Impl, OFFSET>,
228 Read: Read::<Identity, Impl, OFFSET>,
229 Write: Write::<Identity, Impl, OFFSET>,
230 Delete: Delete::<Identity, Impl, OFFSET>,
231 ReadData: ReadData::<Identity, Impl, OFFSET>,
232 WriteData: WriteData::<Identity, Impl, OFFSET>,
233 SetInfo: SetInfo::<Identity, Impl, OFFSET>,
234 }
235 }
236 pub fn matches(iid: &windows::core::GUID) -> bool {
237 iid == &<IAVIStream as ::windows::core::ComInterface>::IID
238 }
239}
240#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"implement\"`*"]
241pub trait IAVIStreaming_Impl: Sized {
242 fn Begin(&self, lstart: i32, lend: i32, lrate: i32) -> ::windows::core::Result<()>;
243 fn End(&self) -> ::windows::core::Result<()>;
244}
245impl ::windows::core::RuntimeName for IAVIStreaming {}
246impl IAVIStreaming_Vtbl {
247 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStreaming_Impl, const OFFSET: isize>() -> IAVIStreaming_Vtbl {
248 unsafe extern "system" fn Begin<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStreaming_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lstart: i32, lend: i32, lrate: i32) -> ::windows::core::HRESULT {
249 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
250 let this = (*this).get_impl();
251 this.Begin(::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lend), ::core::mem::transmute_copy(&lrate)).into()
252 }
253 unsafe extern "system" fn End<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IAVIStreaming_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
254 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
255 let this = (*this).get_impl();
256 this.End().into()
257 }
258 Self { base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Begin: Begin::<Identity, Impl, OFFSET>, End: End::<Identity, Impl, OFFSET> }
259 }
260 pub fn matches(iid: &windows::core::GUID) -> bool {
261 iid == &<IAVIStreaming as ::windows::core::ComInterface>::IID
262 }
263}
264#[doc = "*Required features: `\"Win32_Media_Multimedia\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
265#[cfg(feature = "Win32_Graphics_Gdi")]
266pub trait IGetFrame_Impl: Sized {
267 fn GetFrame(&self, lpos: i32) -> *mut ::core::ffi::c_void;
268 fn Begin(&self, lstart: i32, lend: i32, lrate: i32) -> ::windows::core::Result<()>;
269 fn End(&self) -> ::windows::core::Result<()>;
270 fn SetFormat(&self, lpbi: *const super::super::Graphics::Gdi::BITMAPINFOHEADER, lpbits: *const ::core::ffi::c_void, x: i32, y: i32, dx: i32, dy: i32) -> ::windows::core::Result<()>;
271}
272#[cfg(feature = "Win32_Graphics_Gdi")]
273impl ::windows::core::RuntimeName for IGetFrame {}
274#[cfg(feature = "Win32_Graphics_Gdi")]
275impl IGetFrame_Vtbl {
276 pub const fn new<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IGetFrame_Impl, const OFFSET: isize>() -> IGetFrame_Vtbl {
277 unsafe extern "system" fn GetFrame<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IGetFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpos: i32) -> *mut ::core::ffi::c_void {
278 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
279 let this = (*this).get_impl();
280 this.GetFrame(::core::mem::transmute_copy(&lpos))
281 }
282 unsafe extern "system" fn Begin<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IGetFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lstart: i32, lend: i32, lrate: i32) -> ::windows::core::HRESULT {
283 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
284 let this = (*this).get_impl();
285 this.Begin(::core::mem::transmute_copy(&lstart), ::core::mem::transmute_copy(&lend), ::core::mem::transmute_copy(&lrate)).into()
286 }
287 unsafe extern "system" fn End<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IGetFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows::core::HRESULT {
288 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
289 let this = (*this).get_impl();
290 this.End().into()
291 }
292 unsafe extern "system" fn SetFormat<Identity: ::windows::core::IUnknownImpl<Impl = Impl>, Impl: IGetFrame_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbi: *const super::super::Graphics::Gdi::BITMAPINFOHEADER, lpbits: *const ::core::ffi::c_void, x: i32, y: i32, dx: i32, dy: i32) -> ::windows::core::HRESULT {
293 let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
294 let this = (*this).get_impl();
295 this.SetFormat(::core::mem::transmute_copy(&lpbi), ::core::mem::transmute_copy(&lpbits), ::core::mem::transmute_copy(&x), ::core::mem::transmute_copy(&y), ::core::mem::transmute_copy(&dx), ::core::mem::transmute_copy(&dy)).into()
296 }
297 Self {
298 base__: ::windows::core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
299 GetFrame: GetFrame::<Identity, Impl, OFFSET>,
300 Begin: Begin::<Identity, Impl, OFFSET>,
301 End: End::<Identity, Impl, OFFSET>,
302 SetFormat: SetFormat::<Identity, Impl, OFFSET>,
303 }
304 }
305 pub fn matches(iid: &windows::core::GUID) -> bool {
306 iid == &<IGetFrame as ::windows::core::ComInterface>::IID
307 }
308}