blob: 41e7f2e9809167b9c1da78b4434d2e7b2108d871 [file] [log] [blame]
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMAnalogVideoDecoder_Impl: Sized {
fn AvailableTVFormats(&self) -> ::windows_core::Result<i32>;
fn SetTVFormat(&self, lanalogvideostandard: i32) -> ::windows_core::Result<()>;
fn TVFormat(&self) -> ::windows_core::Result<i32>;
fn HorizontalLocked(&self) -> ::windows_core::Result<i32>;
fn SetVCRHorizontalLocking(&self, lvcrhorizontallocking: i32) -> ::windows_core::Result<()>;
fn VCRHorizontalLocking(&self) -> ::windows_core::Result<i32>;
fn NumberOfLines(&self) -> ::windows_core::Result<i32>;
fn SetOutputEnable(&self, loutputenable: i32) -> ::windows_core::Result<()>;
fn OutputEnable(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IAMAnalogVideoDecoder {}
impl IAMAnalogVideoDecoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>() -> IAMAnalogVideoDecoder_Vtbl {
unsafe extern "system" fn AvailableTVFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lanalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvailableTVFormats() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lanalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTVFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lanalogvideostandard: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTVFormat(::core::mem::transmute_copy(&lanalogvideostandard)).into()
}
unsafe extern "system" fn TVFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TVFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HorizontalLocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pllocked: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.HorizontalLocked() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pllocked, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetVCRHorizontalLocking<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lvcrhorizontallocking: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVCRHorizontalLocking(::core::mem::transmute_copy(&lvcrhorizontallocking)).into()
}
unsafe extern "system" fn VCRHorizontalLocking<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plvcrhorizontallocking: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VCRHorizontalLocking() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plvcrhorizontallocking, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NumberOfLines<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plnumberoflines: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NumberOfLines() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plnumberoflines, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, loutputenable: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputEnable(::core::mem::transmute_copy(&loutputenable)).into()
}
unsafe extern "system" fn OutputEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ploutputenable: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.OutputEnable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ploutputenable, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AvailableTVFormats: AvailableTVFormats::<Identity, Impl, OFFSET>,
SetTVFormat: SetTVFormat::<Identity, Impl, OFFSET>,
TVFormat: TVFormat::<Identity, Impl, OFFSET>,
HorizontalLocked: HorizontalLocked::<Identity, Impl, OFFSET>,
SetVCRHorizontalLocking: SetVCRHorizontalLocking::<Identity, Impl, OFFSET>,
VCRHorizontalLocking: VCRHorizontalLocking::<Identity, Impl, OFFSET>,
NumberOfLines: NumberOfLines::<Identity, Impl, OFFSET>,
SetOutputEnable: SetOutputEnable::<Identity, Impl, OFFSET>,
OutputEnable: OutputEnable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMAnalogVideoDecoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMAnalogVideoEncoder_Impl: Sized {
fn AvailableTVFormats(&self) -> ::windows_core::Result<i32>;
fn SetTVFormat(&self, lanalogvideostandard: i32) -> ::windows_core::Result<()>;
fn TVFormat(&self) -> ::windows_core::Result<i32>;
fn SetCopyProtection(&self, lvideocopyprotection: i32) -> ::windows_core::Result<()>;
fn CopyProtection(&self) -> ::windows_core::Result<i32>;
fn SetCCEnable(&self, lccenable: i32) -> ::windows_core::Result<()>;
fn CCEnable(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IAMAnalogVideoEncoder {}
impl IAMAnalogVideoEncoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>() -> IAMAnalogVideoEncoder_Vtbl {
unsafe extern "system" fn AvailableTVFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lanalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvailableTVFormats() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lanalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTVFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lanalogvideostandard: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTVFormat(::core::mem::transmute_copy(&lanalogvideostandard)).into()
}
unsafe extern "system" fn TVFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TVFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCopyProtection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lvideocopyprotection: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCopyProtection(::core::mem::transmute_copy(&lvideocopyprotection)).into()
}
unsafe extern "system" fn CopyProtection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lvideocopyprotection: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CopyProtection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lvideocopyprotection, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCCEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lccenable: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCCEnable(::core::mem::transmute_copy(&lccenable)).into()
}
unsafe extern "system" fn CCEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAnalogVideoEncoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lccenable: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CCEnable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lccenable, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AvailableTVFormats: AvailableTVFormats::<Identity, Impl, OFFSET>,
SetTVFormat: SetTVFormat::<Identity, Impl, OFFSET>,
TVFormat: TVFormat::<Identity, Impl, OFFSET>,
SetCopyProtection: SetCopyProtection::<Identity, Impl, OFFSET>,
CopyProtection: CopyProtection::<Identity, Impl, OFFSET>,
SetCCEnable: SetCCEnable::<Identity, Impl, OFFSET>,
CCEnable: CCEnable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMAnalogVideoEncoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMAsyncReaderTimestampScaling_Impl: Sized {
fn GetTimestampMode(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetTimestampMode(&self, fraw: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMAsyncReaderTimestampScaling {}
#[cfg(feature = "Win32_Foundation")]
impl IAMAsyncReaderTimestampScaling_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAsyncReaderTimestampScaling_Impl, const OFFSET: isize>() -> IAMAsyncReaderTimestampScaling_Vtbl {
unsafe extern "system" fn GetTimestampMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAsyncReaderTimestampScaling_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfraw: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTimestampMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfraw, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTimestampMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAsyncReaderTimestampScaling_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fraw: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTimestampMode(::core::mem::transmute_copy(&fraw)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTimestampMode: GetTimestampMode::<Identity, Impl, OFFSET>,
SetTimestampMode: SetTimestampMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMAsyncReaderTimestampScaling as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMAudioInputMixer_Impl: Sized {
fn SetEnable(&self, fenable: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Enable(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetMono(&self, fmono: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Mono(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetMixLevel(&self, level: f64) -> ::windows_core::Result<()>;
fn MixLevel(&self) -> ::windows_core::Result<f64>;
fn SetPan(&self, pan: f64) -> ::windows_core::Result<()>;
fn Pan(&self) -> ::windows_core::Result<f64>;
fn SetLoudness(&self, floudness: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn Loudness(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn SetTreble(&self, treble: f64) -> ::windows_core::Result<()>;
fn Treble(&self) -> ::windows_core::Result<f64>;
fn TrebleRange(&self) -> ::windows_core::Result<f64>;
fn SetBass(&self, bass: f64) -> ::windows_core::Result<()>;
fn Bass(&self) -> ::windows_core::Result<f64>;
fn BassRange(&self) -> ::windows_core::Result<f64>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMAudioInputMixer {}
#[cfg(feature = "Win32_Foundation")]
impl IAMAudioInputMixer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>() -> IAMAudioInputMixer_Vtbl {
unsafe extern "system" fn SetEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fenable: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnable(::core::mem::transmute_copy(&fenable)).into()
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfenable: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Enable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfenable, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMono<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmono: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMono(::core::mem::transmute_copy(&fmono)).into()
}
unsafe extern "system" fn Mono<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfmono: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Mono() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfmono, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMixLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, level: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMixLevel(::core::mem::transmute_copy(&level)).into()
}
unsafe extern "system" fn MixLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plevel: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.MixLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plevel, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pan: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPan(::core::mem::transmute_copy(&pan)).into()
}
unsafe extern "system" fn Pan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppan: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Pan() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppan, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLoudness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, floudness: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLoudness(::core::mem::transmute_copy(&floudness)).into()
}
unsafe extern "system" fn Loudness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfloudness: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Loudness() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfloudness, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTreble<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, treble: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTreble(::core::mem::transmute_copy(&treble)).into()
}
unsafe extern "system" fn Treble<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptreble: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Treble() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ptreble, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TrebleRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prange: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TrebleRange() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prange, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBass<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bass: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBass(::core::mem::transmute_copy(&bass)).into()
}
unsafe extern "system" fn Bass<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbass: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Bass() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbass, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BassRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioInputMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prange: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BassRange() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prange, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetEnable: SetEnable::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
SetMono: SetMono::<Identity, Impl, OFFSET>,
Mono: Mono::<Identity, Impl, OFFSET>,
SetMixLevel: SetMixLevel::<Identity, Impl, OFFSET>,
MixLevel: MixLevel::<Identity, Impl, OFFSET>,
SetPan: SetPan::<Identity, Impl, OFFSET>,
Pan: Pan::<Identity, Impl, OFFSET>,
SetLoudness: SetLoudness::<Identity, Impl, OFFSET>,
Loudness: Loudness::<Identity, Impl, OFFSET>,
SetTreble: SetTreble::<Identity, Impl, OFFSET>,
Treble: Treble::<Identity, Impl, OFFSET>,
TrebleRange: TrebleRange::<Identity, Impl, OFFSET>,
SetBass: SetBass::<Identity, Impl, OFFSET>,
Bass: Bass::<Identity, Impl, OFFSET>,
BassRange: BassRange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMAudioInputMixer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMAudioRendererStats_Impl: Sized {
fn GetStatParam(&self, dwparam: u32, pdwparam1: *mut u32, pdwparam2: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMAudioRendererStats {}
impl IAMAudioRendererStats_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioRendererStats_Impl, const OFFSET: isize>() -> IAMAudioRendererStats_Vtbl {
unsafe extern "system" fn GetStatParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMAudioRendererStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparam: u32, pdwparam1: *mut u32, pdwparam2: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStatParam(::core::mem::transmute_copy(&dwparam), ::core::mem::transmute_copy(&pdwparam1), ::core::mem::transmute_copy(&pdwparam2)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetStatParam: GetStatParam::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMAudioRendererStats as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMBufferNegotiation_Impl: Sized {
fn SuggestAllocatorProperties(&self, pprop: *const ALLOCATOR_PROPERTIES) -> ::windows_core::Result<()>;
fn GetAllocatorProperties(&self) -> ::windows_core::Result<ALLOCATOR_PROPERTIES>;
}
impl ::windows_core::RuntimeName for IAMBufferNegotiation {}
impl IAMBufferNegotiation_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMBufferNegotiation_Impl, const OFFSET: isize>() -> IAMBufferNegotiation_Vtbl {
unsafe extern "system" fn SuggestAllocatorProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMBufferNegotiation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprop: *const ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SuggestAllocatorProperties(::core::mem::transmute_copy(&pprop)).into()
}
unsafe extern "system" fn GetAllocatorProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMBufferNegotiation_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprop: *mut ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllocatorProperties() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pprop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SuggestAllocatorProperties: SuggestAllocatorProperties::<Identity, Impl, OFFSET>,
GetAllocatorProperties: GetAllocatorProperties::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMBufferNegotiation as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMCameraControl_Impl: Sized {
fn GetRange(&self, property: i32, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflags: *mut i32) -> ::windows_core::Result<()>;
fn Set(&self, property: i32, lvalue: i32, flags: i32) -> ::windows_core::Result<()>;
fn Get(&self, property: i32, lvalue: *mut i32, flags: *mut i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMCameraControl {}
impl IAMCameraControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCameraControl_Impl, const OFFSET: isize>() -> IAMCameraControl_Vtbl {
unsafe extern "system" fn GetRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRange(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflags)).into()
}
unsafe extern "system" fn Set<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, lvalue: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Set(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&lvalue), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn Get<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, lvalue: *mut i32, flags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Get(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&lvalue), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetRange: GetRange::<Identity, Impl, OFFSET>,
Set: Set::<Identity, Impl, OFFSET>,
Get: Get::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMCameraControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMCertifiedOutputProtection_Impl: Sized {
fn KeyExchange(&self, prandom: *mut ::windows_core::GUID, varlencertgh: *mut *mut u8, pdwlengthcertgh: *mut u32) -> ::windows_core::Result<()>;
fn SessionSequenceStart(&self, psig: *const AMCOPPSignature) -> ::windows_core::Result<()>;
fn ProtectionCommand(&self, cmd: *const AMCOPPCommand) -> ::windows_core::Result<()>;
fn ProtectionStatus(&self, pstatusinput: *const AMCOPPStatusInput, pstatusoutput: *mut AMCOPPStatusOutput) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMCertifiedOutputProtection {}
impl IAMCertifiedOutputProtection_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCertifiedOutputProtection_Impl, const OFFSET: isize>() -> IAMCertifiedOutputProtection_Vtbl {
unsafe extern "system" fn KeyExchange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCertifiedOutputProtection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prandom: *mut ::windows_core::GUID, varlencertgh: *mut *mut u8, pdwlengthcertgh: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.KeyExchange(::core::mem::transmute_copy(&prandom), ::core::mem::transmute_copy(&varlencertgh), ::core::mem::transmute_copy(&pdwlengthcertgh)).into()
}
unsafe extern "system" fn SessionSequenceStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCertifiedOutputProtection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psig: *const AMCOPPSignature) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SessionSequenceStart(::core::mem::transmute_copy(&psig)).into()
}
unsafe extern "system" fn ProtectionCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCertifiedOutputProtection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmd: *const AMCOPPCommand) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProtectionCommand(::core::mem::transmute_copy(&cmd)).into()
}
unsafe extern "system" fn ProtectionStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCertifiedOutputProtection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstatusinput: *const AMCOPPStatusInput, pstatusoutput: *mut AMCOPPStatusOutput) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProtectionStatus(::core::mem::transmute_copy(&pstatusinput), ::core::mem::transmute_copy(&pstatusoutput)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
KeyExchange: KeyExchange::<Identity, Impl, OFFSET>,
SessionSequenceStart: SessionSequenceStart::<Identity, Impl, OFFSET>,
ProtectionCommand: ProtectionCommand::<Identity, Impl, OFFSET>,
ProtectionStatus: ProtectionStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMCertifiedOutputProtection as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMChannelInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn ChannelName(&self, pbstrchannelname: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ChannelDescription(&self, pbstrchanneldescription: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ChannelURL(&self, pbstrchannelurl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ContactAddress(&self, pbstrcontactaddress: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ContactPhone(&self, pbstrcontactphone: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ContactEmail(&self, pbstrcontactemail: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMChannelInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMChannelInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>() -> IAMChannelInfo_Vtbl {
unsafe extern "system" fn ChannelName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrchannelname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChannelName(::core::mem::transmute_copy(&pbstrchannelname)).into()
}
unsafe extern "system" fn ChannelDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrchanneldescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChannelDescription(::core::mem::transmute_copy(&pbstrchanneldescription)).into()
}
unsafe extern "system" fn ChannelURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrchannelurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChannelURL(::core::mem::transmute_copy(&pbstrchannelurl)).into()
}
unsafe extern "system" fn ContactAddress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcontactaddress: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ContactAddress(::core::mem::transmute_copy(&pbstrcontactaddress)).into()
}
unsafe extern "system" fn ContactPhone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcontactphone: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ContactPhone(::core::mem::transmute_copy(&pbstrcontactphone)).into()
}
unsafe extern "system" fn ContactEmail<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMChannelInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcontactemail: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ContactEmail(::core::mem::transmute_copy(&pbstrcontactemail)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
ChannelName: ChannelName::<Identity, Impl, OFFSET>,
ChannelDescription: ChannelDescription::<Identity, Impl, OFFSET>,
ChannelURL: ChannelURL::<Identity, Impl, OFFSET>,
ContactAddress: ContactAddress::<Identity, Impl, OFFSET>,
ContactPhone: ContactPhone::<Identity, Impl, OFFSET>,
ContactEmail: ContactEmail::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMChannelInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMClockAdjust_Impl: Sized {
fn SetClockDelta(&self, rtdelta: i64) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMClockAdjust {}
impl IAMClockAdjust_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMClockAdjust_Impl, const OFFSET: isize>() -> IAMClockAdjust_Vtbl {
unsafe extern "system" fn SetClockDelta<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMClockAdjust_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtdelta: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClockDelta(::core::mem::transmute_copy(&rtdelta)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetClockDelta: SetClockDelta::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMClockAdjust as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMClockSlave_Impl: Sized {
fn SetErrorTolerance(&self, dwtolerance: u32) -> ::windows_core::Result<()>;
fn GetErrorTolerance(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IAMClockSlave {}
impl IAMClockSlave_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMClockSlave_Impl, const OFFSET: isize>() -> IAMClockSlave_Vtbl {
unsafe extern "system" fn SetErrorTolerance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMClockSlave_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtolerance: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetErrorTolerance(::core::mem::transmute_copy(&dwtolerance)).into()
}
unsafe extern "system" fn GetErrorTolerance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMClockSlave_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwtolerance: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetErrorTolerance() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwtolerance, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetErrorTolerance: SetErrorTolerance::<Identity, Impl, OFFSET>,
GetErrorTolerance: GetErrorTolerance::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMClockSlave as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMCollection_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Count(&self) -> ::windows_core::Result<i32>;
fn Item(&self, litem: i32) -> ::windows_core::Result<::windows_core::IUnknown>;
fn _NewEnum(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMCollection {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMCollection_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCollection_Impl, const OFFSET: isize>() -> IAMCollection_Vtbl {
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Item<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, litem: i32, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Item(::core::mem::transmute_copy(&litem)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn _NewEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCollection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this._NewEnum() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Count: Count::<Identity, Impl, OFFSET>,
Item: Item::<Identity, Impl, OFFSET>,
_NewEnum: _NewEnum::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMCollection as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMCopyCaptureFileProgress_Impl: Sized {
fn Progress(&self, iprogress: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMCopyCaptureFileProgress {}
impl IAMCopyCaptureFileProgress_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCopyCaptureFileProgress_Impl, const OFFSET: isize>() -> IAMCopyCaptureFileProgress_Vtbl {
unsafe extern "system" fn Progress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCopyCaptureFileProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iprogress: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Progress(::core::mem::transmute_copy(&iprogress)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Progress: Progress::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMCopyCaptureFileProgress as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMCrossbar_Impl: Sized {
fn get_PinCounts(&self, outputpincount: *mut i32, inputpincount: *mut i32) -> ::windows_core::Result<()>;
fn CanRoute(&self, outputpinindex: i32, inputpinindex: i32) -> ::windows_core::Result<()>;
fn Route(&self, outputpinindex: i32, inputpinindex: i32) -> ::windows_core::Result<()>;
fn get_IsRoutedTo(&self, outputpinindex: i32) -> ::windows_core::Result<i32>;
fn get_CrossbarPinInfo(&self, isinputpin: super::super::Foundation::BOOL, pinindex: i32, pinindexrelated: *mut i32, physicaltype: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMCrossbar {}
#[cfg(feature = "Win32_Foundation")]
impl IAMCrossbar_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>() -> IAMCrossbar_Vtbl {
unsafe extern "system" fn get_PinCounts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputpincount: *mut i32, inputpincount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PinCounts(::core::mem::transmute_copy(&outputpincount), ::core::mem::transmute_copy(&inputpincount)).into()
}
unsafe extern "system" fn CanRoute<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputpinindex: i32, inputpinindex: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CanRoute(::core::mem::transmute_copy(&outputpinindex), ::core::mem::transmute_copy(&inputpinindex)).into()
}
unsafe extern "system" fn Route<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputpinindex: i32, inputpinindex: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Route(::core::mem::transmute_copy(&outputpinindex), ::core::mem::transmute_copy(&inputpinindex)).into()
}
unsafe extern "system" fn get_IsRoutedTo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, outputpinindex: i32, inputpinindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_IsRoutedTo(::core::mem::transmute_copy(&outputpinindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(inputpinindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn get_CrossbarPinInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMCrossbar_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, isinputpin: super::super::Foundation::BOOL, pinindex: i32, pinindexrelated: *mut i32, physicaltype: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_CrossbarPinInfo(::core::mem::transmute_copy(&isinputpin), ::core::mem::transmute_copy(&pinindex), ::core::mem::transmute_copy(&pinindexrelated), ::core::mem::transmute_copy(&physicaltype)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_PinCounts: get_PinCounts::<Identity, Impl, OFFSET>,
CanRoute: CanRoute::<Identity, Impl, OFFSET>,
Route: Route::<Identity, Impl, OFFSET>,
get_IsRoutedTo: get_IsRoutedTo::<Identity, Impl, OFFSET>,
get_CrossbarPinInfo: get_CrossbarPinInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMCrossbar as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMDecoderCaps_Impl: Sized {
fn GetDecoderCaps(&self, dwcapindex: u32) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IAMDecoderCaps {}
impl IAMDecoderCaps_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDecoderCaps_Impl, const OFFSET: isize>() -> IAMDecoderCaps_Vtbl {
unsafe extern "system" fn GetDecoderCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDecoderCaps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcapindex: u32, lpdwcap: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDecoderCaps(::core::mem::transmute_copy(&dwcapindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwcap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDecoderCaps: GetDecoderCaps::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDecoderCaps as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMDevMemoryAllocator_Impl: Sized {
fn GetInfo(&self, pdwcbtotalfree: *mut u32, pdwcblargestfree: *mut u32, pdwcbtotalmemory: *mut u32, pdwcbminimumchunk: *mut u32) -> ::windows_core::Result<()>;
fn CheckMemory(&self, pbuffer: *const u8) -> ::windows_core::Result<()>;
fn Alloc(&self, ppbuffer: *mut *mut u8, pdwcbbuffer: *mut u32) -> ::windows_core::Result<()>;
fn Free(&self, pbuffer: *const u8) -> ::windows_core::Result<()>;
fn GetDevMemoryObject(&self, ppunkinnner: *mut ::core::option::Option<::windows_core::IUnknown>, punkouter: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMDevMemoryAllocator {}
impl IAMDevMemoryAllocator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>() -> IAMDevMemoryAllocator_Vtbl {
unsafe extern "system" fn GetInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcbtotalfree: *mut u32, pdwcblargestfree: *mut u32, pdwcbtotalmemory: *mut u32, pdwcbminimumchunk: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInfo(::core::mem::transmute_copy(&pdwcbtotalfree), ::core::mem::transmute_copy(&pdwcblargestfree), ::core::mem::transmute_copy(&pdwcbtotalmemory), ::core::mem::transmute_copy(&pdwcbminimumchunk)).into()
}
unsafe extern "system" fn CheckMemory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CheckMemory(::core::mem::transmute_copy(&pbuffer)).into()
}
unsafe extern "system" fn Alloc<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppbuffer: *mut *mut u8, pdwcbbuffer: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Alloc(::core::mem::transmute_copy(&ppbuffer), ::core::mem::transmute_copy(&pdwcbbuffer)).into()
}
unsafe extern "system" fn Free<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Free(::core::mem::transmute_copy(&pbuffer)).into()
}
unsafe extern "system" fn GetDevMemoryObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunkinnner: *mut *mut ::core::ffi::c_void, punkouter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDevMemoryObject(::core::mem::transmute_copy(&ppunkinnner), ::windows_core::from_raw_borrowed(&punkouter)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInfo: GetInfo::<Identity, Impl, OFFSET>,
CheckMemory: CheckMemory::<Identity, Impl, OFFSET>,
Alloc: Alloc::<Identity, Impl, OFFSET>,
Free: Free::<Identity, Impl, OFFSET>,
GetDevMemoryObject: GetDevMemoryObject::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDevMemoryAllocator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMDevMemoryControl_Impl: Sized {
fn QueryWriteSync(&self) -> ::windows_core::Result<()>;
fn WriteSync(&self) -> ::windows_core::Result<()>;
fn GetDevId(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IAMDevMemoryControl {}
impl IAMDevMemoryControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryControl_Impl, const OFFSET: isize>() -> IAMDevMemoryControl_Vtbl {
unsafe extern "system" fn QueryWriteSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryWriteSync().into()
}
unsafe extern "system" fn WriteSync<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WriteSync().into()
}
unsafe extern "system" fn GetDevId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDevMemoryControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwdevid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDevId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwdevid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryWriteSync: QueryWriteSync::<Identity, Impl, OFFSET>,
WriteSync: WriteSync::<Identity, Impl, OFFSET>,
GetDevId: GetDevId::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDevMemoryControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMDeviceRemoval_Impl: Sized {
fn DeviceInfo(&self, pclsidinterfaceclass: *mut ::windows_core::GUID, pwszsymboliclink: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn Reassociate(&self) -> ::windows_core::Result<()>;
fn Disassociate(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMDeviceRemoval {}
impl IAMDeviceRemoval_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDeviceRemoval_Impl, const OFFSET: isize>() -> IAMDeviceRemoval_Vtbl {
unsafe extern "system" fn DeviceInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDeviceRemoval_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclsidinterfaceclass: *mut ::windows_core::GUID, pwszsymboliclink: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeviceInfo(::core::mem::transmute_copy(&pclsidinterfaceclass), ::core::mem::transmute_copy(&pwszsymboliclink)).into()
}
unsafe extern "system" fn Reassociate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDeviceRemoval_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reassociate().into()
}
unsafe extern "system" fn Disassociate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDeviceRemoval_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disassociate().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DeviceInfo: DeviceInfo::<Identity, Impl, OFFSET>,
Reassociate: Reassociate::<Identity, Impl, OFFSET>,
Disassociate: Disassociate::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDeviceRemoval as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_Audio_DirectSound\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_Audio_DirectSound"))]
pub trait IAMDirectSound_Impl: Sized {
fn GetDirectSoundInterface(&self) -> ::windows_core::Result<super::Audio::DirectSound::IDirectSound>;
fn GetPrimaryBufferInterface(&self) -> ::windows_core::Result<super::Audio::DirectSound::IDirectSoundBuffer>;
fn GetSecondaryBufferInterface(&self) -> ::windows_core::Result<super::Audio::DirectSound::IDirectSoundBuffer>;
fn ReleaseDirectSoundInterface(&self, lpds: ::core::option::Option<&super::Audio::DirectSound::IDirectSound>) -> ::windows_core::Result<()>;
fn ReleasePrimaryBufferInterface(&self, lpdsb: ::core::option::Option<&super::Audio::DirectSound::IDirectSoundBuffer>) -> ::windows_core::Result<()>;
fn ReleaseSecondaryBufferInterface(&self, lpdsb: ::core::option::Option<&super::Audio::DirectSound::IDirectSoundBuffer>) -> ::windows_core::Result<()>;
fn SetFocusWindow(&self, param0: super::super::Foundation::HWND, param1: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetFocusWindow(&self, param0: *mut super::super::Foundation::HWND, param1: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_Audio_DirectSound"))]
impl ::windows_core::RuntimeName for IAMDirectSound {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_Audio_DirectSound"))]
impl IAMDirectSound_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>() -> IAMDirectSound_Vtbl {
unsafe extern "system" fn GetDirectSoundInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplpds: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDirectSoundInterface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpds, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPrimaryBufferInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplpdsb: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPrimaryBufferInterface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpdsb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSecondaryBufferInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplpdsb: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSecondaryBufferInterface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpdsb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReleaseDirectSoundInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpds: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseDirectSoundInterface(::windows_core::from_raw_borrowed(&lpds)).into()
}
unsafe extern "system" fn ReleasePrimaryBufferInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdsb: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleasePrimaryBufferInterface(::windows_core::from_raw_borrowed(&lpdsb)).into()
}
unsafe extern "system" fn ReleaseSecondaryBufferInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdsb: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseSecondaryBufferInterface(::windows_core::from_raw_borrowed(&lpdsb)).into()
}
unsafe extern "system" fn SetFocusWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param0: super::super::Foundation::HWND, param1: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFocusWindow(::core::mem::transmute_copy(&param0), ::core::mem::transmute_copy(&param1)).into()
}
unsafe extern "system" fn GetFocusWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDirectSound_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param0: *mut super::super::Foundation::HWND, param1: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFocusWindow(::core::mem::transmute_copy(&param0), ::core::mem::transmute_copy(&param1)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDirectSoundInterface: GetDirectSoundInterface::<Identity, Impl, OFFSET>,
GetPrimaryBufferInterface: GetPrimaryBufferInterface::<Identity, Impl, OFFSET>,
GetSecondaryBufferInterface: GetSecondaryBufferInterface::<Identity, Impl, OFFSET>,
ReleaseDirectSoundInterface: ReleaseDirectSoundInterface::<Identity, Impl, OFFSET>,
ReleasePrimaryBufferInterface: ReleasePrimaryBufferInterface::<Identity, Impl, OFFSET>,
ReleaseSecondaryBufferInterface: ReleaseSecondaryBufferInterface::<Identity, Impl, OFFSET>,
SetFocusWindow: SetFocusWindow::<Identity, Impl, OFFSET>,
GetFocusWindow: GetFocusWindow::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDirectSound as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMDroppedFrames_Impl: Sized {
fn GetNumDropped(&self) -> ::windows_core::Result<i32>;
fn GetNumNotDropped(&self) -> ::windows_core::Result<i32>;
fn GetDroppedInfo(&self, lsize: i32, plarray: *mut i32, plnumcopied: *mut i32) -> ::windows_core::Result<()>;
fn GetAverageFrameSize(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IAMDroppedFrames {}
impl IAMDroppedFrames_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDroppedFrames_Impl, const OFFSET: isize>() -> IAMDroppedFrames_Vtbl {
unsafe extern "system" fn GetNumDropped<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDroppedFrames_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pldropped: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumDropped() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pldropped, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumNotDropped<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDroppedFrames_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plnotdropped: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumNotDropped() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plnotdropped, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDroppedInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDroppedFrames_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lsize: i32, plarray: *mut i32, plnumcopied: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDroppedInfo(::core::mem::transmute_copy(&lsize), ::core::mem::transmute_copy(&plarray), ::core::mem::transmute_copy(&plnumcopied)).into()
}
unsafe extern "system" fn GetAverageFrameSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMDroppedFrames_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plaveragesize: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAverageFrameSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plaveragesize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumDropped: GetNumDropped::<Identity, Impl, OFFSET>,
GetNumNotDropped: GetNumNotDropped::<Identity, Impl, OFFSET>,
GetDroppedInfo: GetDroppedInfo::<Identity, Impl, OFFSET>,
GetAverageFrameSize: GetAverageFrameSize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMDroppedFrames as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMExtDevice_Impl: Sized {
fn GetCapability(&self, capability: i32, pvalue: *mut i32, pdblvalue: *mut f64) -> ::windows_core::Result<()>;
fn ExternalDeviceID(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn ExternalDeviceVersion(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn SetDevicePower(&self, powermode: i32) -> ::windows_core::Result<()>;
fn DevicePower(&self) -> ::windows_core::Result<i32>;
fn Calibrate(&self, hevent: usize, mode: i32) -> ::windows_core::Result<i32>;
fn SetDevicePort(&self, deviceport: i32) -> ::windows_core::Result<()>;
fn DevicePort(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IAMExtDevice {}
impl IAMExtDevice_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>() -> IAMExtDevice_Vtbl {
unsafe extern "system" fn GetCapability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, capability: i32, pvalue: *mut i32, pdblvalue: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCapability(::core::mem::transmute_copy(&capability), ::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pdblvalue)).into()
}
unsafe extern "system" fn ExternalDeviceID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszdata: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ExternalDeviceID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszdata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ExternalDeviceVersion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszdata: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ExternalDeviceVersion() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppszdata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDevicePower<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, powermode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDevicePower(::core::mem::transmute_copy(&powermode)).into()
}
unsafe extern "system" fn DevicePower<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppowermode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DevicePower() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppowermode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Calibrate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hevent: usize, mode: i32, pstatus: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Calibrate(::core::mem::transmute_copy(&hevent), ::core::mem::transmute_copy(&mode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDevicePort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, deviceport: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDevicePort(::core::mem::transmute_copy(&deviceport)).into()
}
unsafe extern "system" fn DevicePort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtDevice_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdeviceport: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DevicePort() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdeviceport, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCapability: GetCapability::<Identity, Impl, OFFSET>,
ExternalDeviceID: ExternalDeviceID::<Identity, Impl, OFFSET>,
ExternalDeviceVersion: ExternalDeviceVersion::<Identity, Impl, OFFSET>,
SetDevicePower: SetDevicePower::<Identity, Impl, OFFSET>,
DevicePower: DevicePower::<Identity, Impl, OFFSET>,
Calibrate: Calibrate::<Identity, Impl, OFFSET>,
SetDevicePort: SetDevicePort::<Identity, Impl, OFFSET>,
DevicePort: DevicePort::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMExtDevice as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMExtTransport_Impl: Sized {
fn GetCapability(&self, capability: i32, pvalue: *mut i32, pdblvalue: *mut f64) -> ::windows_core::Result<()>;
fn SetMediaState(&self, state: i32) -> ::windows_core::Result<()>;
fn MediaState(&self) -> ::windows_core::Result<i32>;
fn SetLocalControl(&self, state: i32) -> ::windows_core::Result<()>;
fn LocalControl(&self) -> ::windows_core::Result<i32>;
fn GetStatus(&self, statusitem: i32) -> ::windows_core::Result<i32>;
fn GetTransportBasicParameters(&self, param: i32, pvalue: *mut i32, ppszdata: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
fn SetTransportBasicParameters(&self, param: i32, value: i32, pszdata: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn GetTransportVideoParameters(&self, param: i32) -> ::windows_core::Result<i32>;
fn SetTransportVideoParameters(&self, param: i32, value: i32) -> ::windows_core::Result<()>;
fn GetTransportAudioParameters(&self, param: i32) -> ::windows_core::Result<i32>;
fn SetTransportAudioParameters(&self, param: i32, value: i32) -> ::windows_core::Result<()>;
fn SetMode(&self, mode: i32) -> ::windows_core::Result<()>;
fn Mode(&self) -> ::windows_core::Result<i32>;
fn SetRate(&self, dblrate: f64) -> ::windows_core::Result<()>;
fn Rate(&self) -> ::windows_core::Result<f64>;
fn GetChase(&self, penabled: *mut i32, poffset: *mut i32, phevent: *mut usize) -> ::windows_core::Result<()>;
fn SetChase(&self, enable: i32, offset: i32, hevent: usize) -> ::windows_core::Result<()>;
fn GetBump(&self, pspeed: *mut i32, pduration: *mut i32) -> ::windows_core::Result<()>;
fn SetBump(&self, speed: i32, duration: i32) -> ::windows_core::Result<()>;
fn AntiClogControl(&self) -> ::windows_core::Result<i32>;
fn SetAntiClogControl(&self, enable: i32) -> ::windows_core::Result<()>;
fn GetEditPropertySet(&self, editid: i32) -> ::windows_core::Result<i32>;
fn SetEditPropertySet(&self, peditid: *mut i32, state: i32) -> ::windows_core::Result<()>;
fn GetEditProperty(&self, editid: i32, param: i32) -> ::windows_core::Result<i32>;
fn SetEditProperty(&self, editid: i32, param: i32, value: i32) -> ::windows_core::Result<()>;
fn EditStart(&self) -> ::windows_core::Result<i32>;
fn SetEditStart(&self, value: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMExtTransport {}
impl IAMExtTransport_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>() -> IAMExtTransport_Vtbl {
unsafe extern "system" fn GetCapability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, capability: i32, pvalue: *mut i32, pdblvalue: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCapability(::core::mem::transmute_copy(&capability), ::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pdblvalue)).into()
}
unsafe extern "system" fn SetMediaState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaState(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn MediaState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.MediaState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLocalControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLocalControl(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn LocalControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LocalControl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, statusitem: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStatus(::core::mem::transmute_copy(&statusitem)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTransportBasicParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32, ppszdata: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTransportBasicParameters(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&ppszdata)).into()
}
unsafe extern "system" fn SetTransportBasicParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32, pszdata: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTransportBasicParameters(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value), ::core::mem::transmute(&pszdata)).into()
}
unsafe extern "system" fn GetTransportVideoParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTransportVideoParameters(::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTransportVideoParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTransportVideoParameters(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn GetTransportAudioParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTransportAudioParameters(::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTransportAudioParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTransportAudioParameters(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn Mode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Mode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dblrate: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRate(::core::mem::transmute_copy(&dblrate)).into()
}
unsafe extern "system" fn Rate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdblrate: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Rate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdblrate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetChase<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penabled: *mut i32, poffset: *mut i32, phevent: *mut usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetChase(::core::mem::transmute_copy(&penabled), ::core::mem::transmute_copy(&poffset), ::core::mem::transmute_copy(&phevent)).into()
}
unsafe extern "system" fn SetChase<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enable: i32, offset: i32, hevent: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetChase(::core::mem::transmute_copy(&enable), ::core::mem::transmute_copy(&offset), ::core::mem::transmute_copy(&hevent)).into()
}
unsafe extern "system" fn GetBump<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pspeed: *mut i32, pduration: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBump(::core::mem::transmute_copy(&pspeed), ::core::mem::transmute_copy(&pduration)).into()
}
unsafe extern "system" fn SetBump<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, speed: i32, duration: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBump(::core::mem::transmute_copy(&speed), ::core::mem::transmute_copy(&duration)).into()
}
unsafe extern "system" fn AntiClogControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penabled: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AntiClogControl() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(penabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAntiClogControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enable: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAntiClogControl(::core::mem::transmute_copy(&enable)).into()
}
unsafe extern "system" fn GetEditPropertySet<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, editid: i32, pstate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEditPropertySet(::core::mem::transmute_copy(&editid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEditPropertySet<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, peditid: *mut i32, state: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEditPropertySet(::core::mem::transmute_copy(&peditid), ::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn GetEditProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, editid: i32, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEditProperty(::core::mem::transmute_copy(&editid), ::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEditProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, editid: i32, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEditProperty(::core::mem::transmute_copy(&editid), ::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn EditStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EditStart() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetEditStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtTransport_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEditStart(::core::mem::transmute_copy(&value)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCapability: GetCapability::<Identity, Impl, OFFSET>,
SetMediaState: SetMediaState::<Identity, Impl, OFFSET>,
MediaState: MediaState::<Identity, Impl, OFFSET>,
SetLocalControl: SetLocalControl::<Identity, Impl, OFFSET>,
LocalControl: LocalControl::<Identity, Impl, OFFSET>,
GetStatus: GetStatus::<Identity, Impl, OFFSET>,
GetTransportBasicParameters: GetTransportBasicParameters::<Identity, Impl, OFFSET>,
SetTransportBasicParameters: SetTransportBasicParameters::<Identity, Impl, OFFSET>,
GetTransportVideoParameters: GetTransportVideoParameters::<Identity, Impl, OFFSET>,
SetTransportVideoParameters: SetTransportVideoParameters::<Identity, Impl, OFFSET>,
GetTransportAudioParameters: GetTransportAudioParameters::<Identity, Impl, OFFSET>,
SetTransportAudioParameters: SetTransportAudioParameters::<Identity, Impl, OFFSET>,
SetMode: SetMode::<Identity, Impl, OFFSET>,
Mode: Mode::<Identity, Impl, OFFSET>,
SetRate: SetRate::<Identity, Impl, OFFSET>,
Rate: Rate::<Identity, Impl, OFFSET>,
GetChase: GetChase::<Identity, Impl, OFFSET>,
SetChase: SetChase::<Identity, Impl, OFFSET>,
GetBump: GetBump::<Identity, Impl, OFFSET>,
SetBump: SetBump::<Identity, Impl, OFFSET>,
AntiClogControl: AntiClogControl::<Identity, Impl, OFFSET>,
SetAntiClogControl: SetAntiClogControl::<Identity, Impl, OFFSET>,
GetEditPropertySet: GetEditPropertySet::<Identity, Impl, OFFSET>,
SetEditPropertySet: SetEditPropertySet::<Identity, Impl, OFFSET>,
GetEditProperty: GetEditProperty::<Identity, Impl, OFFSET>,
SetEditProperty: SetEditProperty::<Identity, Impl, OFFSET>,
EditStart: EditStart::<Identity, Impl, OFFSET>,
SetEditStart: SetEditStart::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMExtTransport as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMExtendedErrorInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn HasError(&self, phaserror: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn ErrorDescription(&self, pbstrerrordescription: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn ErrorCode(&self, perrorcode: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMExtendedErrorInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMExtendedErrorInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedErrorInfo_Impl, const OFFSET: isize>() -> IAMExtendedErrorInfo_Vtbl {
unsafe extern "system" fn HasError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedErrorInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phaserror: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HasError(::core::mem::transmute_copy(&phaserror)).into()
}
unsafe extern "system" fn ErrorDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedErrorInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrerrordescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ErrorDescription(::core::mem::transmute_copy(&pbstrerrordescription)).into()
}
unsafe extern "system" fn ErrorCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedErrorInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, perrorcode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ErrorCode(::core::mem::transmute_copy(&perrorcode)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
HasError: HasError::<Identity, Impl, OFFSET>,
ErrorDescription: ErrorDescription::<Identity, Impl, OFFSET>,
ErrorCode: ErrorCode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMExtendedErrorInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMExtendedSeeking_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn ExSeekCapabilities(&self, pexcapabilities: *mut i32) -> ::windows_core::Result<()>;
fn MarkerCount(&self, pmarkercount: *mut i32) -> ::windows_core::Result<()>;
fn CurrentMarker(&self, pcurrentmarker: *mut i32) -> ::windows_core::Result<()>;
fn GetMarkerTime(&self, markernum: i32, pmarkertime: *mut f64) -> ::windows_core::Result<()>;
fn GetMarkerName(&self, markernum: i32, pbstrmarkername: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn SetPlaybackSpeed(&self, speed: f64) -> ::windows_core::Result<()>;
fn PlaybackSpeed(&self, pspeed: *mut f64) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMExtendedSeeking {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMExtendedSeeking_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>() -> IAMExtendedSeeking_Vtbl {
unsafe extern "system" fn ExSeekCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pexcapabilities: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ExSeekCapabilities(::core::mem::transmute_copy(&pexcapabilities)).into()
}
unsafe extern "system" fn MarkerCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmarkercount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MarkerCount(::core::mem::transmute_copy(&pmarkercount)).into()
}
unsafe extern "system" fn CurrentMarker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrentmarker: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CurrentMarker(::core::mem::transmute_copy(&pcurrentmarker)).into()
}
unsafe extern "system" fn GetMarkerTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, markernum: i32, pmarkertime: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMarkerTime(::core::mem::transmute_copy(&markernum), ::core::mem::transmute_copy(&pmarkertime)).into()
}
unsafe extern "system" fn GetMarkerName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, markernum: i32, pbstrmarkername: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMarkerName(::core::mem::transmute_copy(&markernum), ::core::mem::transmute_copy(&pbstrmarkername)).into()
}
unsafe extern "system" fn SetPlaybackSpeed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, speed: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPlaybackSpeed(::core::mem::transmute_copy(&speed)).into()
}
unsafe extern "system" fn PlaybackSpeed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMExtendedSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pspeed: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PlaybackSpeed(::core::mem::transmute_copy(&pspeed)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
ExSeekCapabilities: ExSeekCapabilities::<Identity, Impl, OFFSET>,
MarkerCount: MarkerCount::<Identity, Impl, OFFSET>,
CurrentMarker: CurrentMarker::<Identity, Impl, OFFSET>,
GetMarkerTime: GetMarkerTime::<Identity, Impl, OFFSET>,
GetMarkerName: GetMarkerName::<Identity, Impl, OFFSET>,
SetPlaybackSpeed: SetPlaybackSpeed::<Identity, Impl, OFFSET>,
PlaybackSpeed: PlaybackSpeed::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMExtendedSeeking as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMFilterGraphCallback_Impl: Sized {
fn UnableToRender(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMFilterGraphCallback {}
impl IAMFilterGraphCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMFilterGraphCallback_Impl, const OFFSET: isize>() -> IAMFilterGraphCallback_Vtbl {
unsafe extern "system" fn UnableToRender<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMFilterGraphCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnableToRender(::windows_core::from_raw_borrowed(&ppin)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), UnableToRender: UnableToRender::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMFilterGraphCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMFilterMiscFlags_Impl: Sized {
fn GetMiscFlags(&self) -> u32;
}
impl ::windows_core::RuntimeName for IAMFilterMiscFlags {}
impl IAMFilterMiscFlags_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMFilterMiscFlags_Impl, const OFFSET: isize>() -> IAMFilterMiscFlags_Vtbl {
unsafe extern "system" fn GetMiscFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMFilterMiscFlags_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> u32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMiscFlags()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetMiscFlags: GetMiscFlags::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMFilterMiscFlags as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IAMGraphBuilderCallback_Impl: Sized {
fn SelectedFilter(&self, pmon: ::core::option::Option<&super::super::System::Com::IMoniker>) -> ::windows_core::Result<()>;
fn CreatedFilter(&self, pfil: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IAMGraphBuilderCallback {}
#[cfg(feature = "Win32_System_Com")]
impl IAMGraphBuilderCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphBuilderCallback_Impl, const OFFSET: isize>() -> IAMGraphBuilderCallback_Vtbl {
unsafe extern "system" fn SelectedFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphBuilderCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmon: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectedFilter(::windows_core::from_raw_borrowed(&pmon)).into()
}
unsafe extern "system" fn CreatedFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphBuilderCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfil: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreatedFilter(::windows_core::from_raw_borrowed(&pfil)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SelectedFilter: SelectedFilter::<Identity, Impl, OFFSET>,
CreatedFilter: CreatedFilter::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMGraphBuilderCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMGraphStreams_Impl: Sized {
fn FindUpstreamInterface(&self, ppin: ::core::option::Option<&IPin>, riid: *const ::windows_core::GUID, ppvinterface: *mut *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::Result<()>;
fn SyncUsingStreamOffset(&self, busestreamoffset: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetMaxGraphLatency(&self, rtmaxgraphlatency: i64) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMGraphStreams {}
#[cfg(feature = "Win32_Foundation")]
impl IAMGraphStreams_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphStreams_Impl, const OFFSET: isize>() -> IAMGraphStreams_Vtbl {
unsafe extern "system" fn FindUpstreamInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppvinterface: *mut *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindUpstreamInterface(::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvinterface), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SyncUsingStreamOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busestreamoffset: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SyncUsingStreamOffset(::core::mem::transmute_copy(&busestreamoffset)).into()
}
unsafe extern "system" fn SetMaxGraphLatency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMGraphStreams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtmaxgraphlatency: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMaxGraphLatency(::core::mem::transmute_copy(&rtmaxgraphlatency)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FindUpstreamInterface: FindUpstreamInterface::<Identity, Impl, OFFSET>,
SyncUsingStreamOffset: SyncUsingStreamOffset::<Identity, Impl, OFFSET>,
SetMaxGraphLatency: SetMaxGraphLatency::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMGraphStreams as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMLatency_Impl: Sized {
fn GetLatency(&self) -> ::windows_core::Result<i64>;
}
impl ::windows_core::RuntimeName for IAMLatency {}
impl IAMLatency_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLatency_Impl, const OFFSET: isize>() -> IAMLatency_Vtbl {
unsafe extern "system" fn GetLatency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLatency_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtlatency: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLatency() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtlatency, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetLatency: GetLatency::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMLatency as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAMLine21Decoder_Impl: Sized {
fn GetDecoderLevel(&self, lplevel: *mut AM_LINE21_CCLEVEL) -> ::windows_core::Result<()>;
fn GetCurrentService(&self, lpservice: *mut AM_LINE21_CCSERVICE) -> ::windows_core::Result<()>;
fn SetCurrentService(&self, service: AM_LINE21_CCSERVICE) -> ::windows_core::Result<()>;
fn GetServiceState(&self, lpstate: *mut AM_LINE21_CCSTATE) -> ::windows_core::Result<()>;
fn SetServiceState(&self, state: AM_LINE21_CCSTATE) -> ::windows_core::Result<()>;
fn GetOutputFormat(&self, lpbmih: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER) -> ::windows_core::Result<()>;
fn SetOutputFormat(&self, lpbmi: *mut super::super::Graphics::Gdi::BITMAPINFO) -> ::windows_core::Result<()>;
fn GetBackgroundColor(&self, pdwphyscolor: *mut u32) -> ::windows_core::Result<()>;
fn SetBackgroundColor(&self, dwphyscolor: u32) -> ::windows_core::Result<()>;
fn GetRedrawAlways(&self, lpboption: *mut i32) -> ::windows_core::Result<()>;
fn SetRedrawAlways(&self, boption: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetDrawBackgroundMode(&self, lpmode: *mut AM_LINE21_DRAWBGMODE) -> ::windows_core::Result<()>;
fn SetDrawBackgroundMode(&self, mode: AM_LINE21_DRAWBGMODE) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAMLine21Decoder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAMLine21Decoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>() -> IAMLine21Decoder_Vtbl {
unsafe extern "system" fn GetDecoderLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplevel: *mut AM_LINE21_CCLEVEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDecoderLevel(::core::mem::transmute_copy(&lplevel)).into()
}
unsafe extern "system" fn GetCurrentService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpservice: *mut AM_LINE21_CCSERVICE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentService(::core::mem::transmute_copy(&lpservice)).into()
}
unsafe extern "system" fn SetCurrentService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, service: AM_LINE21_CCSERVICE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentService(::core::mem::transmute_copy(&service)).into()
}
unsafe extern "system" fn GetServiceState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpstate: *mut AM_LINE21_CCSTATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetServiceState(::core::mem::transmute_copy(&lpstate)).into()
}
unsafe extern "system" fn SetServiceState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: AM_LINE21_CCSTATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetServiceState(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn GetOutputFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbmih: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputFormat(::core::mem::transmute_copy(&lpbmih)).into()
}
unsafe extern "system" fn SetOutputFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbmi: *mut super::super::Graphics::Gdi::BITMAPINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputFormat(::core::mem::transmute_copy(&lpbmi)).into()
}
unsafe extern "system" fn GetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwphyscolor: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBackgroundColor(::core::mem::transmute_copy(&pdwphyscolor)).into()
}
unsafe extern "system" fn SetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwphyscolor: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundColor(::core::mem::transmute_copy(&dwphyscolor)).into()
}
unsafe extern "system" fn GetRedrawAlways<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpboption: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRedrawAlways(::core::mem::transmute_copy(&lpboption)).into()
}
unsafe extern "system" fn SetRedrawAlways<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, boption: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRedrawAlways(::core::mem::transmute_copy(&boption)).into()
}
unsafe extern "system" fn GetDrawBackgroundMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpmode: *mut AM_LINE21_DRAWBGMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDrawBackgroundMode(::core::mem::transmute_copy(&lpmode)).into()
}
unsafe extern "system" fn SetDrawBackgroundMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMLine21Decoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: AM_LINE21_DRAWBGMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDrawBackgroundMode(::core::mem::transmute_copy(&mode)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDecoderLevel: GetDecoderLevel::<Identity, Impl, OFFSET>,
GetCurrentService: GetCurrentService::<Identity, Impl, OFFSET>,
SetCurrentService: SetCurrentService::<Identity, Impl, OFFSET>,
GetServiceState: GetServiceState::<Identity, Impl, OFFSET>,
SetServiceState: SetServiceState::<Identity, Impl, OFFSET>,
GetOutputFormat: GetOutputFormat::<Identity, Impl, OFFSET>,
SetOutputFormat: SetOutputFormat::<Identity, Impl, OFFSET>,
GetBackgroundColor: GetBackgroundColor::<Identity, Impl, OFFSET>,
SetBackgroundColor: SetBackgroundColor::<Identity, Impl, OFFSET>,
GetRedrawAlways: GetRedrawAlways::<Identity, Impl, OFFSET>,
SetRedrawAlways: SetRedrawAlways::<Identity, Impl, OFFSET>,
GetDrawBackgroundMode: GetDrawBackgroundMode::<Identity, Impl, OFFSET>,
SetDrawBackgroundMode: SetDrawBackgroundMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMLine21Decoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMMediaContent_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn AuthorName(&self, pbstrauthorname: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Title(&self, pbstrtitle: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Rating(&self, pbstrrating: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Description(&self, pbstrdescription: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Copyright(&self, pbstrcopyright: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn BaseURL(&self, pbstrbaseurl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn LogoURL(&self, pbstrlogourl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn LogoIconURL(&self, pbstrlogourl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn WatermarkURL(&self, pbstrwatermarkurl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn MoreInfoURL(&self, pbstrmoreinfourl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn MoreInfoBannerImage(&self, pbstrmoreinfobannerimage: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn MoreInfoBannerURL(&self, pbstrmoreinfobannerurl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn MoreInfoText(&self, pbstrmoreinfotext: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMMediaContent {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMMediaContent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>() -> IAMMediaContent_Vtbl {
unsafe extern "system" fn AuthorName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrauthorname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AuthorName(::core::mem::transmute_copy(&pbstrauthorname)).into()
}
unsafe extern "system" fn Title<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrtitle: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Title(::core::mem::transmute_copy(&pbstrtitle)).into()
}
unsafe extern "system" fn Rating<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrrating: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Rating(::core::mem::transmute_copy(&pbstrrating)).into()
}
unsafe extern "system" fn Description<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrdescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Description(::core::mem::transmute_copy(&pbstrdescription)).into()
}
unsafe extern "system" fn Copyright<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcopyright: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Copyright(::core::mem::transmute_copy(&pbstrcopyright)).into()
}
unsafe extern "system" fn BaseURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrbaseurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BaseURL(::core::mem::transmute_copy(&pbstrbaseurl)).into()
}
unsafe extern "system" fn LogoURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrlogourl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LogoURL(::core::mem::transmute_copy(&pbstrlogourl)).into()
}
unsafe extern "system" fn LogoIconURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrlogourl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LogoIconURL(::core::mem::transmute_copy(&pbstrlogourl)).into()
}
unsafe extern "system" fn WatermarkURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrwatermarkurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WatermarkURL(::core::mem::transmute_copy(&pbstrwatermarkurl)).into()
}
unsafe extern "system" fn MoreInfoURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrmoreinfourl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoreInfoURL(::core::mem::transmute_copy(&pbstrmoreinfourl)).into()
}
unsafe extern "system" fn MoreInfoBannerImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrmoreinfobannerimage: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoreInfoBannerImage(::core::mem::transmute_copy(&pbstrmoreinfobannerimage)).into()
}
unsafe extern "system" fn MoreInfoBannerURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrmoreinfobannerurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoreInfoBannerURL(::core::mem::transmute_copy(&pbstrmoreinfobannerurl)).into()
}
unsafe extern "system" fn MoreInfoText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrmoreinfotext: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MoreInfoText(::core::mem::transmute_copy(&pbstrmoreinfotext)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
AuthorName: AuthorName::<Identity, Impl, OFFSET>,
Title: Title::<Identity, Impl, OFFSET>,
Rating: Rating::<Identity, Impl, OFFSET>,
Description: Description::<Identity, Impl, OFFSET>,
Copyright: Copyright::<Identity, Impl, OFFSET>,
BaseURL: BaseURL::<Identity, Impl, OFFSET>,
LogoURL: LogoURL::<Identity, Impl, OFFSET>,
LogoIconURL: LogoIconURL::<Identity, Impl, OFFSET>,
WatermarkURL: WatermarkURL::<Identity, Impl, OFFSET>,
MoreInfoURL: MoreInfoURL::<Identity, Impl, OFFSET>,
MoreInfoBannerImage: MoreInfoBannerImage::<Identity, Impl, OFFSET>,
MoreInfoBannerURL: MoreInfoBannerURL::<Identity, Impl, OFFSET>,
MoreInfoText: MoreInfoText::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMediaContent as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMMediaContent2_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn get_MediaParameter(&self, entrynum: i32, bstrname: &::windows_core::BSTR, pbstrvalue: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn get_MediaParameterName(&self, entrynum: i32, index: i32, pbstrname: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn PlaylistCount(&self, pnumberentries: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMMediaContent2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMMediaContent2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent2_Impl, const OFFSET: isize>() -> IAMMediaContent2_Vtbl {
unsafe extern "system" fn get_MediaParameter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entrynum: i32, bstrname: ::std::mem::MaybeUninit<::windows_core::BSTR>, pbstrvalue: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_MediaParameter(::core::mem::transmute_copy(&entrynum), ::core::mem::transmute(&bstrname), ::core::mem::transmute_copy(&pbstrvalue)).into()
}
unsafe extern "system" fn get_MediaParameterName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, entrynum: i32, index: i32, pbstrname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_MediaParameterName(::core::mem::transmute_copy(&entrynum), ::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&pbstrname)).into()
}
unsafe extern "system" fn PlaylistCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaContent2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnumberentries: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PlaylistCount(::core::mem::transmute_copy(&pnumberentries)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
get_MediaParameter: get_MediaParameter::<Identity, Impl, OFFSET>,
get_MediaParameterName: get_MediaParameterName::<Identity, Impl, OFFSET>,
PlaylistCount: PlaylistCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMediaContent2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IAMMediaStream_Impl: Sized + IMediaStream_Impl {
fn Initialize(&self, psourceobject: ::core::option::Option<&::windows_core::IUnknown>, dwflags: u32, purposeid: *const ::windows_core::GUID, streamtype: STREAM_TYPE) -> ::windows_core::Result<()>;
fn SetState(&self, state: FILTER_STATE) -> ::windows_core::Result<()>;
fn JoinAMMultiMediaStream(&self, pammultimediastream: ::core::option::Option<&IAMMultiMediaStream>) -> ::windows_core::Result<()>;
fn JoinFilter(&self, pmediastreamfilter: ::core::option::Option<&IMediaStreamFilter>) -> ::windows_core::Result<()>;
fn JoinFilterGraph(&self, pfiltergraph: ::core::option::Option<&IFilterGraph>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IAMMediaStream {}
#[cfg(feature = "Win32_System_Com")]
impl IAMMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>() -> IAMMediaStream_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourceobject: *mut ::core::ffi::c_void, dwflags: u32, purposeid: *const ::windows_core::GUID, streamtype: STREAM_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::windows_core::from_raw_borrowed(&psourceobject), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&purposeid), ::core::mem::transmute_copy(&streamtype)).into()
}
unsafe extern "system" fn SetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: FILTER_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetState(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn JoinAMMultiMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pammultimediastream: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JoinAMMultiMediaStream(::windows_core::from_raw_borrowed(&pammultimediastream)).into()
}
unsafe extern "system" fn JoinFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediastreamfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JoinFilter(::windows_core::from_raw_borrowed(&pmediastreamfilter)).into()
}
unsafe extern "system" fn JoinFilterGraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfiltergraph: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JoinFilterGraph(::windows_core::from_raw_borrowed(&pfiltergraph)).into()
}
Self {
base__: IMediaStream_Vtbl::new::<Identity, Impl, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
SetState: SetState::<Identity, Impl, OFFSET>,
JoinAMMultiMediaStream: JoinAMMultiMediaStream::<Identity, Impl, OFFSET>,
JoinFilter: JoinFilter::<Identity, Impl, OFFSET>,
JoinFilterGraph: JoinFilterGraph::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMediaStream as ::windows_core::ComInterface>::IID || iid == &<IMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IAMMediaTypeSample_Impl: Sized + IStreamSample_Impl {
fn SetPointer(&self, pbuffer: *const u8, lsize: i32) -> ::windows_core::Result<()>;
fn GetPointer(&self) -> ::windows_core::Result<*mut u8>;
fn GetSize(&self) -> i32;
fn GetTime(&self, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::Result<()>;
fn SetTime(&self, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::Result<()>;
fn IsSyncPoint(&self) -> ::windows_core::Result<()>;
fn SetSyncPoint(&self, bissyncpoint: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn IsPreroll(&self) -> ::windows_core::Result<()>;
fn SetPreroll(&self, bispreroll: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetActualDataLength(&self) -> i32;
fn SetActualDataLength(&self, __midl__iammediatypesample0000: i32) -> ::windows_core::Result<()>;
fn GetMediaType(&self) -> ::windows_core::Result<*mut super::MediaFoundation::AM_MEDIA_TYPE>;
fn SetMediaType(&self, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn IsDiscontinuity(&self) -> ::windows_core::Result<()>;
fn SetDiscontinuity(&self, bdiscontinuity: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetMediaTime(&self, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::Result<()>;
fn SetMediaTime(&self, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IAMMediaTypeSample {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IAMMediaTypeSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>() -> IAMMediaTypeSample_Vtbl {
unsafe extern "system" fn SetPointer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbuffer: *const u8, lsize: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPointer(::core::mem::transmute_copy(&pbuffer), ::core::mem::transmute_copy(&lsize)).into()
}
unsafe extern "system" fn GetPointer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppbuffer: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPointer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppbuffer, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> i32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSize()
}
unsafe extern "system" fn GetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn SetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn IsSyncPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsSyncPoint().into()
}
unsafe extern "system" fn SetSyncPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bissyncpoint: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncPoint(::core::mem::transmute_copy(&bissyncpoint)).into()
}
unsafe extern "system" fn IsPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsPreroll().into()
}
unsafe extern "system" fn SetPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bispreroll: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPreroll(::core::mem::transmute_copy(&bispreroll)).into()
}
unsafe extern "system" fn GetActualDataLength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> i32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetActualDataLength()
}
unsafe extern "system" fn SetActualDataLength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, __midl__iammediatypesample0000: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActualDataLength(::core::mem::transmute_copy(&__midl__iammediatypesample0000)).into()
}
unsafe extern "system" fn GetMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmediatype: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMediaType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediatype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaType(::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn IsDiscontinuity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsDiscontinuity().into()
}
unsafe extern "system" fn SetDiscontinuity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bdiscontinuity: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDiscontinuity(::core::mem::transmute_copy(&bdiscontinuity)).into()
}
unsafe extern "system" fn GetMediaTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMediaTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn SetMediaTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
Self {
base__: IStreamSample_Vtbl::new::<Identity, Impl, OFFSET>(),
SetPointer: SetPointer::<Identity, Impl, OFFSET>,
GetPointer: GetPointer::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetTime: GetTime::<Identity, Impl, OFFSET>,
SetTime: SetTime::<Identity, Impl, OFFSET>,
IsSyncPoint: IsSyncPoint::<Identity, Impl, OFFSET>,
SetSyncPoint: SetSyncPoint::<Identity, Impl, OFFSET>,
IsPreroll: IsPreroll::<Identity, Impl, OFFSET>,
SetPreroll: SetPreroll::<Identity, Impl, OFFSET>,
GetActualDataLength: GetActualDataLength::<Identity, Impl, OFFSET>,
SetActualDataLength: SetActualDataLength::<Identity, Impl, OFFSET>,
GetMediaType: GetMediaType::<Identity, Impl, OFFSET>,
SetMediaType: SetMediaType::<Identity, Impl, OFFSET>,
IsDiscontinuity: IsDiscontinuity::<Identity, Impl, OFFSET>,
SetDiscontinuity: SetDiscontinuity::<Identity, Impl, OFFSET>,
GetMediaTime: GetMediaTime::<Identity, Impl, OFFSET>,
SetMediaTime: SetMediaTime::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMediaTypeSample as ::windows_core::ComInterface>::IID || iid == &<IStreamSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IAMMediaTypeStream_Impl: Sized + IMediaStream_Impl {
fn GetFormat(&self, pmediatype: *mut super::MediaFoundation::AM_MEDIA_TYPE, dwflags: u32) -> ::windows_core::Result<()>;
fn SetFormat(&self, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE, dwflags: u32) -> ::windows_core::Result<()>;
fn CreateSample(&self, lsamplesize: i32, pbbuffer: *const u8, dwflags: u32, punkouter: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<IAMMediaTypeSample>;
fn GetStreamAllocatorRequirements(&self) -> ::windows_core::Result<ALLOCATOR_PROPERTIES>;
fn SetStreamAllocatorRequirements(&self, pprops: *const ALLOCATOR_PROPERTIES) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IAMMediaTypeStream {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IAMMediaTypeStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>() -> IAMMediaTypeStream_Vtbl {
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *mut super::MediaFoundation::AM_MEDIA_TYPE, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFormat(::core::mem::transmute_copy(&pmediatype), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn SetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFormat(::core::mem::transmute_copy(&pmediatype), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn CreateSample<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lsamplesize: i32, pbbuffer: *const u8, dwflags: u32, punkouter: *mut ::core::ffi::c_void, ppammediatypesample: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateSample(::core::mem::transmute_copy(&lsamplesize), ::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&dwflags), ::windows_core::from_raw_borrowed(&punkouter)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppammediatypesample, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStreamAllocatorRequirements<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprops: *mut ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStreamAllocatorRequirements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pprops, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStreamAllocatorRequirements<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMediaTypeStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprops: *const ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamAllocatorRequirements(::core::mem::transmute_copy(&pprops)).into()
}
Self {
base__: IMediaStream_Vtbl::new::<Identity, Impl, OFFSET>(),
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
SetFormat: SetFormat::<Identity, Impl, OFFSET>,
CreateSample: CreateSample::<Identity, Impl, OFFSET>,
GetStreamAllocatorRequirements: GetStreamAllocatorRequirements::<Identity, Impl, OFFSET>,
SetStreamAllocatorRequirements: SetStreamAllocatorRequirements::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMediaTypeStream as ::windows_core::ComInterface>::IID || iid == &<IMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IAMMultiMediaStream_Impl: Sized + IMultiMediaStream_Impl {
fn Initialize(&self, streamtype: STREAM_TYPE, dwflags: &AMMSF_MMS_INIT_FLAGS, pfiltergraph: ::core::option::Option<&IGraphBuilder>) -> ::windows_core::Result<()>;
fn GetFilterGraph(&self) -> ::windows_core::Result<IGraphBuilder>;
fn GetFilter(&self) -> ::windows_core::Result<IMediaStreamFilter>;
fn AddMediaStream(&self, pstreamobject: ::core::option::Option<&::windows_core::IUnknown>, purposeid: *const ::windows_core::GUID, dwflags: &AMMSF_MS_FLAGS) -> ::windows_core::Result<IMediaStream>;
fn OpenFile(&self, pszfilename: &::windows_core::PCWSTR, dwflags: u32) -> ::windows_core::Result<()>;
fn OpenMoniker(&self, pctx: ::core::option::Option<&super::super::System::Com::IBindCtx>, pmoniker: ::core::option::Option<&super::super::System::Com::IMoniker>, dwflags: u32) -> ::windows_core::Result<()>;
fn Render(&self, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IAMMultiMediaStream {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IAMMultiMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>() -> IAMMultiMediaStream_Vtbl {
unsafe extern "system" fn Initialize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, streamtype: STREAM_TYPE, dwflags: u32, pfiltergraph: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Initialize(::core::mem::transmute_copy(&streamtype), ::core::mem::transmute(&dwflags), ::windows_core::from_raw_borrowed(&pfiltergraph)).into()
}
unsafe extern "system" fn GetFilterGraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppgraphbuilder: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFilterGraph() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgraphbuilder, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfilter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFilter() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfilter, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstreamobject: *mut ::core::ffi::c_void, purposeid: *const ::windows_core::GUID, dwflags: u32, ppnewstream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddMediaStream(::windows_core::from_raw_borrowed(&pstreamobject), ::core::mem::transmute_copy(&purposeid), ::core::mem::transmute(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppnewstream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OpenFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilename: ::windows_core::PCWSTR, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenFile(::core::mem::transmute(&pszfilename), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn OpenMoniker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pctx: *mut ::core::ffi::c_void, pmoniker: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenMoniker(::windows_core::from_raw_borrowed(&pctx), ::windows_core::from_raw_borrowed(&pmoniker), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn Render<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Render(::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: IMultiMediaStream_Vtbl::new::<Identity, Impl, OFFSET>(),
Initialize: Initialize::<Identity, Impl, OFFSET>,
GetFilterGraph: GetFilterGraph::<Identity, Impl, OFFSET>,
GetFilter: GetFilter::<Identity, Impl, OFFSET>,
AddMediaStream: AddMediaStream::<Identity, Impl, OFFSET>,
OpenFile: OpenFile::<Identity, Impl, OFFSET>,
OpenMoniker: OpenMoniker::<Identity, Impl, OFFSET>,
Render: Render::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMMultiMediaStream as ::windows_core::ComInterface>::IID || iid == &<IMultiMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMNetShowConfig_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn BufferingTime(&self, pbufferingtime: *mut f64) -> ::windows_core::Result<()>;
fn SetBufferingTime(&self, bufferingtime: f64) -> ::windows_core::Result<()>;
fn UseFixedUDPPort(&self, pusefixedudpport: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetUseFixedUDPPort(&self, usefixedudpport: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn FixedUDPPort(&self, pfixedudpport: *mut i32) -> ::windows_core::Result<()>;
fn SetFixedUDPPort(&self, fixedudpport: i32) -> ::windows_core::Result<()>;
fn UseHTTPProxy(&self, pusehttpproxy: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetUseHTTPProxy(&self, usehttpproxy: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn EnableAutoProxy(&self, penableautoproxy: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetEnableAutoProxy(&self, enableautoproxy: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn HTTPProxyHost(&self, pbstrhttpproxyhost: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn SetHTTPProxyHost(&self, bstrhttpproxyhost: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn HTTPProxyPort(&self, phttpproxyport: *mut i32) -> ::windows_core::Result<()>;
fn SetHTTPProxyPort(&self, httpproxyport: i32) -> ::windows_core::Result<()>;
fn EnableMulticast(&self, penablemulticast: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetEnableMulticast(&self, enablemulticast: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn EnableUDP(&self, penableudp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetEnableUDP(&self, enableudp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn EnableTCP(&self, penabletcp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetEnableTCP(&self, enabletcp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn EnableHTTP(&self, penablehttp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn SetEnableHTTP(&self, enablehttp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMNetShowConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMNetShowConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>() -> IAMNetShowConfig_Vtbl {
unsafe extern "system" fn BufferingTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbufferingtime: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BufferingTime(::core::mem::transmute_copy(&pbufferingtime)).into()
}
unsafe extern "system" fn SetBufferingTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bufferingtime: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBufferingTime(::core::mem::transmute_copy(&bufferingtime)).into()
}
unsafe extern "system" fn UseFixedUDPPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pusefixedudpport: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UseFixedUDPPort(::core::mem::transmute_copy(&pusefixedudpport)).into()
}
unsafe extern "system" fn SetUseFixedUDPPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usefixedudpport: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUseFixedUDPPort(::core::mem::transmute_copy(&usefixedudpport)).into()
}
unsafe extern "system" fn FixedUDPPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfixedudpport: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FixedUDPPort(::core::mem::transmute_copy(&pfixedudpport)).into()
}
unsafe extern "system" fn SetFixedUDPPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fixedudpport: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFixedUDPPort(::core::mem::transmute_copy(&fixedudpport)).into()
}
unsafe extern "system" fn UseHTTPProxy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pusehttpproxy: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UseHTTPProxy(::core::mem::transmute_copy(&pusehttpproxy)).into()
}
unsafe extern "system" fn SetUseHTTPProxy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usehttpproxy: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUseHTTPProxy(::core::mem::transmute_copy(&usehttpproxy)).into()
}
unsafe extern "system" fn EnableAutoProxy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penableautoproxy: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableAutoProxy(::core::mem::transmute_copy(&penableautoproxy)).into()
}
unsafe extern "system" fn SetEnableAutoProxy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enableautoproxy: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableAutoProxy(::core::mem::transmute_copy(&enableautoproxy)).into()
}
unsafe extern "system" fn HTTPProxyHost<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrhttpproxyhost: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HTTPProxyHost(::core::mem::transmute_copy(&pbstrhttpproxyhost)).into()
}
unsafe extern "system" fn SetHTTPProxyHost<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrhttpproxyhost: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHTTPProxyHost(::core::mem::transmute(&bstrhttpproxyhost)).into()
}
unsafe extern "system" fn HTTPProxyPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phttpproxyport: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HTTPProxyPort(::core::mem::transmute_copy(&phttpproxyport)).into()
}
unsafe extern "system" fn SetHTTPProxyPort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, httpproxyport: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHTTPProxyPort(::core::mem::transmute_copy(&httpproxyport)).into()
}
unsafe extern "system" fn EnableMulticast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penablemulticast: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableMulticast(::core::mem::transmute_copy(&penablemulticast)).into()
}
unsafe extern "system" fn SetEnableMulticast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enablemulticast: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableMulticast(::core::mem::transmute_copy(&enablemulticast)).into()
}
unsafe extern "system" fn EnableUDP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penableudp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableUDP(::core::mem::transmute_copy(&penableudp)).into()
}
unsafe extern "system" fn SetEnableUDP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enableudp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableUDP(::core::mem::transmute_copy(&enableudp)).into()
}
unsafe extern "system" fn EnableTCP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penabletcp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableTCP(::core::mem::transmute_copy(&penabletcp)).into()
}
unsafe extern "system" fn SetEnableTCP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enabletcp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableTCP(::core::mem::transmute_copy(&enabletcp)).into()
}
unsafe extern "system" fn EnableHTTP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penablehttp: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnableHTTP(::core::mem::transmute_copy(&penablehttp)).into()
}
unsafe extern "system" fn SetEnableHTTP<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, enablehttp: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableHTTP(::core::mem::transmute_copy(&enablehttp)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
BufferingTime: BufferingTime::<Identity, Impl, OFFSET>,
SetBufferingTime: SetBufferingTime::<Identity, Impl, OFFSET>,
UseFixedUDPPort: UseFixedUDPPort::<Identity, Impl, OFFSET>,
SetUseFixedUDPPort: SetUseFixedUDPPort::<Identity, Impl, OFFSET>,
FixedUDPPort: FixedUDPPort::<Identity, Impl, OFFSET>,
SetFixedUDPPort: SetFixedUDPPort::<Identity, Impl, OFFSET>,
UseHTTPProxy: UseHTTPProxy::<Identity, Impl, OFFSET>,
SetUseHTTPProxy: SetUseHTTPProxy::<Identity, Impl, OFFSET>,
EnableAutoProxy: EnableAutoProxy::<Identity, Impl, OFFSET>,
SetEnableAutoProxy: SetEnableAutoProxy::<Identity, Impl, OFFSET>,
HTTPProxyHost: HTTPProxyHost::<Identity, Impl, OFFSET>,
SetHTTPProxyHost: SetHTTPProxyHost::<Identity, Impl, OFFSET>,
HTTPProxyPort: HTTPProxyPort::<Identity, Impl, OFFSET>,
SetHTTPProxyPort: SetHTTPProxyPort::<Identity, Impl, OFFSET>,
EnableMulticast: EnableMulticast::<Identity, Impl, OFFSET>,
SetEnableMulticast: SetEnableMulticast::<Identity, Impl, OFFSET>,
EnableUDP: EnableUDP::<Identity, Impl, OFFSET>,
SetEnableUDP: SetEnableUDP::<Identity, Impl, OFFSET>,
EnableTCP: EnableTCP::<Identity, Impl, OFFSET>,
SetEnableTCP: SetEnableTCP::<Identity, Impl, OFFSET>,
EnableHTTP: EnableHTTP::<Identity, Impl, OFFSET>,
SetEnableHTTP: SetEnableHTTP::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMNetShowConfig as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMNetShowExProps_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SourceProtocol(&self, psourceprotocol: *mut i32) -> ::windows_core::Result<()>;
fn Bandwidth(&self, pbandwidth: *mut i32) -> ::windows_core::Result<()>;
fn ErrorCorrection(&self, pbstrerrorcorrection: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn CodecCount(&self, pcodeccount: *mut i32) -> ::windows_core::Result<()>;
fn GetCodecInstalled(&self, codecnum: i32, pcodecinstalled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn GetCodecDescription(&self, codecnum: i32, pbstrcodecdescription: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn GetCodecURL(&self, codecnum: i32, pbstrcodecurl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn CreationDate(&self, pcreationdate: *mut f64) -> ::windows_core::Result<()>;
fn SourceLink(&self, pbstrsourcelink: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMNetShowExProps {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMNetShowExProps_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>() -> IAMNetShowExProps_Vtbl {
unsafe extern "system" fn SourceProtocol<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourceprotocol: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SourceProtocol(::core::mem::transmute_copy(&psourceprotocol)).into()
}
unsafe extern "system" fn Bandwidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbandwidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Bandwidth(::core::mem::transmute_copy(&pbandwidth)).into()
}
unsafe extern "system" fn ErrorCorrection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrerrorcorrection: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ErrorCorrection(::core::mem::transmute_copy(&pbstrerrorcorrection)).into()
}
unsafe extern "system" fn CodecCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcodeccount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CodecCount(::core::mem::transmute_copy(&pcodeccount)).into()
}
unsafe extern "system" fn GetCodecInstalled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, codecnum: i32, pcodecinstalled: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodecInstalled(::core::mem::transmute_copy(&codecnum), ::core::mem::transmute_copy(&pcodecinstalled)).into()
}
unsafe extern "system" fn GetCodecDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, codecnum: i32, pbstrcodecdescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodecDescription(::core::mem::transmute_copy(&codecnum), ::core::mem::transmute_copy(&pbstrcodecdescription)).into()
}
unsafe extern "system" fn GetCodecURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, codecnum: i32, pbstrcodecurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCodecURL(::core::mem::transmute_copy(&codecnum), ::core::mem::transmute_copy(&pbstrcodecurl)).into()
}
unsafe extern "system" fn CreationDate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcreationdate: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreationDate(::core::mem::transmute_copy(&pcreationdate)).into()
}
unsafe extern "system" fn SourceLink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowExProps_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrsourcelink: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SourceLink(::core::mem::transmute_copy(&pbstrsourcelink)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
SourceProtocol: SourceProtocol::<Identity, Impl, OFFSET>,
Bandwidth: Bandwidth::<Identity, Impl, OFFSET>,
ErrorCorrection: ErrorCorrection::<Identity, Impl, OFFSET>,
CodecCount: CodecCount::<Identity, Impl, OFFSET>,
GetCodecInstalled: GetCodecInstalled::<Identity, Impl, OFFSET>,
GetCodecDescription: GetCodecDescription::<Identity, Impl, OFFSET>,
GetCodecURL: GetCodecURL::<Identity, Impl, OFFSET>,
CreationDate: CreationDate::<Identity, Impl, OFFSET>,
SourceLink: SourceLink::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMNetShowExProps as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMNetShowPreroll_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SetPreroll(&self, fpreroll: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn Preroll(&self, pfpreroll: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMNetShowPreroll {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMNetShowPreroll_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowPreroll_Impl, const OFFSET: isize>() -> IAMNetShowPreroll_Vtbl {
unsafe extern "system" fn SetPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowPreroll_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpreroll: super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPreroll(::core::mem::transmute_copy(&fpreroll)).into()
}
unsafe extern "system" fn Preroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetShowPreroll_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfpreroll: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Preroll(::core::mem::transmute_copy(&pfpreroll)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
SetPreroll: SetPreroll::<Identity, Impl, OFFSET>,
Preroll: Preroll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMNetShowPreroll as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMNetworkStatus_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn ReceivedPackets(&self, preceivedpackets: *mut i32) -> ::windows_core::Result<()>;
fn RecoveredPackets(&self, precoveredpackets: *mut i32) -> ::windows_core::Result<()>;
fn LostPackets(&self, plostpackets: *mut i32) -> ::windows_core::Result<()>;
fn ReceptionQuality(&self, preceptionquality: *mut i32) -> ::windows_core::Result<()>;
fn BufferingCount(&self, pbufferingcount: *mut i32) -> ::windows_core::Result<()>;
fn IsBroadcast(&self, pisbroadcast: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn BufferingProgress(&self, pbufferingprogress: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMNetworkStatus {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMNetworkStatus_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>() -> IAMNetworkStatus_Vtbl {
unsafe extern "system" fn ReceivedPackets<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, preceivedpackets: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReceivedPackets(::core::mem::transmute_copy(&preceivedpackets)).into()
}
unsafe extern "system" fn RecoveredPackets<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, precoveredpackets: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RecoveredPackets(::core::mem::transmute_copy(&precoveredpackets)).into()
}
unsafe extern "system" fn LostPackets<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plostpackets: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LostPackets(::core::mem::transmute_copy(&plostpackets)).into()
}
unsafe extern "system" fn ReceptionQuality<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, preceptionquality: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReceptionQuality(::core::mem::transmute_copy(&preceptionquality)).into()
}
unsafe extern "system" fn BufferingCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbufferingcount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BufferingCount(::core::mem::transmute_copy(&pbufferingcount)).into()
}
unsafe extern "system" fn IsBroadcast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pisbroadcast: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsBroadcast(::core::mem::transmute_copy(&pisbroadcast)).into()
}
unsafe extern "system" fn BufferingProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMNetworkStatus_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbufferingprogress: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BufferingProgress(::core::mem::transmute_copy(&pbufferingprogress)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
ReceivedPackets: ReceivedPackets::<Identity, Impl, OFFSET>,
RecoveredPackets: RecoveredPackets::<Identity, Impl, OFFSET>,
LostPackets: LostPackets::<Identity, Impl, OFFSET>,
ReceptionQuality: ReceptionQuality::<Identity, Impl, OFFSET>,
BufferingCount: BufferingCount::<Identity, Impl, OFFSET>,
IsBroadcast: IsBroadcast::<Identity, Impl, OFFSET>,
BufferingProgress: BufferingProgress::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMNetworkStatus as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMOpenProgress_Impl: Sized {
fn QueryProgress(&self, plltotal: *mut i64, pllcurrent: *mut i64) -> ::windows_core::Result<()>;
fn AbortOperation(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMOpenProgress {}
impl IAMOpenProgress_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOpenProgress_Impl, const OFFSET: isize>() -> IAMOpenProgress_Vtbl {
unsafe extern "system" fn QueryProgress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOpenProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plltotal: *mut i64, pllcurrent: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryProgress(::core::mem::transmute_copy(&plltotal), ::core::mem::transmute_copy(&pllcurrent)).into()
}
unsafe extern "system" fn AbortOperation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOpenProgress_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AbortOperation().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryProgress: QueryProgress::<Identity, Impl, OFFSET>,
AbortOperation: AbortOperation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMOpenProgress as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMOverlayFX_Impl: Sized {
fn QueryOverlayFXCaps(&self) -> ::windows_core::Result<u32>;
fn SetOverlayFX(&self, dwoverlayfx: u32) -> ::windows_core::Result<()>;
fn GetOverlayFX(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IAMOverlayFX {}
impl IAMOverlayFX_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOverlayFX_Impl, const OFFSET: isize>() -> IAMOverlayFX_Vtbl {
unsafe extern "system" fn QueryOverlayFXCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOverlayFX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwoverlayfxcaps: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryOverlayFXCaps() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwoverlayfxcaps, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOverlayFX<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOverlayFX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwoverlayfx: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOverlayFX(::core::mem::transmute_copy(&dwoverlayfx)).into()
}
unsafe extern "system" fn GetOverlayFX<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMOverlayFX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwoverlayfx: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOverlayFX() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwoverlayfx, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryOverlayFXCaps: QueryOverlayFXCaps::<Identity, Impl, OFFSET>,
SetOverlayFX: SetOverlayFX::<Identity, Impl, OFFSET>,
GetOverlayFX: GetOverlayFX::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMOverlayFX as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMParse_Impl: Sized {
fn GetParseTime(&self) -> ::windows_core::Result<i64>;
fn SetParseTime(&self, rtcurrent: i64) -> ::windows_core::Result<()>;
fn Flush(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMParse {}
impl IAMParse_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMParse_Impl, const OFFSET: isize>() -> IAMParse_Vtbl {
unsafe extern "system" fn GetParseTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMParse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtcurrent: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetParseTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtcurrent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetParseTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMParse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtcurrent: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParseTime(::core::mem::transmute_copy(&rtcurrent)).into()
}
unsafe extern "system" fn Flush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMParse_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Flush().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetParseTime: GetParseTime::<Identity, Impl, OFFSET>,
SetParseTime: SetParseTime::<Identity, Impl, OFFSET>,
Flush: Flush::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMParse as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMPhysicalPinInfo_Impl: Sized {
fn GetPhysicalType(&self, ptype: *mut i32, ppsztype: *mut ::windows_core::PWSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMPhysicalPinInfo {}
impl IAMPhysicalPinInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPhysicalPinInfo_Impl, const OFFSET: isize>() -> IAMPhysicalPinInfo_Vtbl {
unsafe extern "system" fn GetPhysicalType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPhysicalPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptype: *mut i32, ppsztype: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPhysicalType(::core::mem::transmute_copy(&ptype), ::core::mem::transmute_copy(&ppsztype)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetPhysicalType: GetPhysicalType::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMPhysicalPinInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMPlayList_Impl: Sized {
fn GetFlags(&self) -> ::windows_core::Result<u32>;
fn GetItemCount(&self) -> ::windows_core::Result<u32>;
fn GetItem(&self, dwitemindex: u32) -> ::windows_core::Result<IAMPlayListItem>;
fn GetNamedEvent(&self, pwszeventname: &::windows_core::PCWSTR, dwitemindex: u32, ppitem: *mut ::core::option::Option<IAMPlayListItem>, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn GetRepeatInfo(&self, pdwrepeatcount: *mut u32, pdwrepeatstart: *mut u32, pdwrepeatend: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMPlayList {}
impl IAMPlayList_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>() -> IAMPlayList_Vtbl {
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItemCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwitems: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItemCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwitems, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetItem<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwitemindex: u32, ppitem: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetItem(::core::mem::transmute_copy(&dwitemindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppitem, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNamedEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwszeventname: ::windows_core::PCWSTR, dwitemindex: u32, ppitem: *mut *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNamedEvent(::core::mem::transmute(&pwszeventname), ::core::mem::transmute_copy(&dwitemindex), ::core::mem::transmute_copy(&ppitem), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn GetRepeatInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayList_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwrepeatcount: *mut u32, pdwrepeatstart: *mut u32, pdwrepeatend: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRepeatInfo(::core::mem::transmute_copy(&pdwrepeatcount), ::core::mem::transmute_copy(&pdwrepeatstart), ::core::mem::transmute_copy(&pdwrepeatend)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
GetItemCount: GetItemCount::<Identity, Impl, OFFSET>,
GetItem: GetItem::<Identity, Impl, OFFSET>,
GetNamedEvent: GetNamedEvent::<Identity, Impl, OFFSET>,
GetRepeatInfo: GetRepeatInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMPlayList as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMPlayListItem_Impl: Sized {
fn GetFlags(&self) -> ::windows_core::Result<u32>;
fn GetSourceCount(&self) -> ::windows_core::Result<u32>;
fn GetSourceURL(&self, dwsourceindex: u32) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetSourceStart(&self, dwsourceindex: u32) -> ::windows_core::Result<i64>;
fn GetSourceDuration(&self, dwsourceindex: u32) -> ::windows_core::Result<i64>;
fn GetSourceStartMarker(&self, dwsourceindex: u32) -> ::windows_core::Result<u32>;
fn GetSourceEndMarker(&self, dwsourceindex: u32) -> ::windows_core::Result<u32>;
fn GetSourceStartMarkerName(&self, dwsourceindex: u32) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetSourceEndMarkerName(&self, dwsourceindex: u32) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetLinkURL(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetScanDuration(&self, dwsourceindex: u32) -> ::windows_core::Result<i64>;
}
impl ::windows_core::RuntimeName for IAMPlayListItem {}
impl IAMPlayListItem_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>() -> IAMPlayListItem_Vtbl {
unsafe extern "system" fn GetFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwsources: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwsources, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, pbstrurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceURL(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, prtstart: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceStart(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtstart, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceDuration<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, prtduration: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceDuration(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtduration, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceStartMarker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, pdwmarker: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceStartMarker(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmarker, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceEndMarker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, pdwmarker: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceEndMarker(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmarker, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceStartMarkerName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, pbstrstartmarker: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceStartMarkerName(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrstartmarker, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSourceEndMarkerName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, pbstrendmarker: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSourceEndMarkerName(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrendmarker, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetLinkURL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLinkURL() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetScanDuration<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPlayListItem_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwsourceindex: u32, prtscanduration: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetScanDuration(::core::mem::transmute_copy(&dwsourceindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtscanduration, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFlags: GetFlags::<Identity, Impl, OFFSET>,
GetSourceCount: GetSourceCount::<Identity, Impl, OFFSET>,
GetSourceURL: GetSourceURL::<Identity, Impl, OFFSET>,
GetSourceStart: GetSourceStart::<Identity, Impl, OFFSET>,
GetSourceDuration: GetSourceDuration::<Identity, Impl, OFFSET>,
GetSourceStartMarker: GetSourceStartMarker::<Identity, Impl, OFFSET>,
GetSourceEndMarker: GetSourceEndMarker::<Identity, Impl, OFFSET>,
GetSourceStartMarkerName: GetSourceStartMarkerName::<Identity, Impl, OFFSET>,
GetSourceEndMarkerName: GetSourceEndMarkerName::<Identity, Impl, OFFSET>,
GetLinkURL: GetLinkURL::<Identity, Impl, OFFSET>,
GetScanDuration: GetScanDuration::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMPlayListItem as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMPluginControl_Impl: Sized {
fn GetPreferredClsid(&self, subtype: *const ::windows_core::GUID) -> ::windows_core::Result<::windows_core::GUID>;
fn GetPreferredClsidByIndex(&self, index: u32, subtype: *mut ::windows_core::GUID, clsid: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetPreferredClsid(&self, subtype: *const ::windows_core::GUID, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn IsDisabled(&self, clsid: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDisabledByIndex(&self, index: u32) -> ::windows_core::Result<::windows_core::GUID>;
fn SetDisabled(&self, clsid: *const ::windows_core::GUID, disabled: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn IsLegacyDisabled(&self, dllname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMPluginControl {}
#[cfg(feature = "Win32_Foundation")]
impl IAMPluginControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>() -> IAMPluginControl_Vtbl {
unsafe extern "system" fn GetPreferredClsid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, subtype: *const ::windows_core::GUID, clsid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPreferredClsid(::core::mem::transmute_copy(&subtype)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(clsid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPreferredClsidByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, subtype: *mut ::windows_core::GUID, clsid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPreferredClsidByIndex(::core::mem::transmute_copy(&index), ::core::mem::transmute_copy(&subtype), ::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn SetPreferredClsid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, subtype: *const ::windows_core::GUID, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPreferredClsid(::core::mem::transmute_copy(&subtype), ::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn IsDisabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsDisabled(::core::mem::transmute_copy(&clsid)).into()
}
unsafe extern "system" fn GetDisabledByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: u32, clsid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDisabledByIndex(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(clsid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDisabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: *const ::windows_core::GUID, disabled: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDisabled(::core::mem::transmute_copy(&clsid), ::core::mem::transmute_copy(&disabled)).into()
}
unsafe extern "system" fn IsLegacyDisabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPluginControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dllname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsLegacyDisabled(::core::mem::transmute(&dllname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPreferredClsid: GetPreferredClsid::<Identity, Impl, OFFSET>,
GetPreferredClsidByIndex: GetPreferredClsidByIndex::<Identity, Impl, OFFSET>,
SetPreferredClsid: SetPreferredClsid::<Identity, Impl, OFFSET>,
IsDisabled: IsDisabled::<Identity, Impl, OFFSET>,
GetDisabledByIndex: GetDisabledByIndex::<Identity, Impl, OFFSET>,
SetDisabled: SetDisabled::<Identity, Impl, OFFSET>,
IsLegacyDisabled: IsLegacyDisabled::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMPluginControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMPushSource_Impl: Sized + IAMLatency_Impl {
fn GetPushSourceFlags(&self) -> ::windows_core::Result<u32>;
fn SetPushSourceFlags(&self, flags: u32) -> ::windows_core::Result<()>;
fn SetStreamOffset(&self, rtoffset: i64) -> ::windows_core::Result<()>;
fn GetStreamOffset(&self) -> ::windows_core::Result<i64>;
fn GetMaxStreamOffset(&self) -> ::windows_core::Result<i64>;
fn SetMaxStreamOffset(&self, rtmaxoffset: i64) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMPushSource {}
impl IAMPushSource_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>() -> IAMPushSource_Vtbl {
unsafe extern "system" fn GetPushSourceFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPushSourceFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPushSourceFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPushSourceFlags(::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn SetStreamOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtoffset: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamOffset(::core::mem::transmute_copy(&rtoffset)).into()
}
unsafe extern "system" fn GetStreamOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtoffset: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStreamOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtoffset, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMaxStreamOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtmaxoffset: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMaxStreamOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtmaxoffset, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMaxStreamOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMPushSource_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, rtmaxoffset: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMaxStreamOffset(::core::mem::transmute_copy(&rtmaxoffset)).into()
}
Self {
base__: IAMLatency_Vtbl::new::<Identity, Impl, OFFSET>(),
GetPushSourceFlags: GetPushSourceFlags::<Identity, Impl, OFFSET>,
SetPushSourceFlags: SetPushSourceFlags::<Identity, Impl, OFFSET>,
SetStreamOffset: SetStreamOffset::<Identity, Impl, OFFSET>,
GetStreamOffset: GetStreamOffset::<Identity, Impl, OFFSET>,
GetMaxStreamOffset: GetMaxStreamOffset::<Identity, Impl, OFFSET>,
SetMaxStreamOffset: SetMaxStreamOffset::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMPushSource as ::windows_core::ComInterface>::IID || iid == &<IAMLatency as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMRebuild_Impl: Sized {
fn RebuildNow(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMRebuild {}
impl IAMRebuild_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMRebuild_Impl, const OFFSET: isize>() -> IAMRebuild_Vtbl {
unsafe extern "system" fn RebuildNow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMRebuild_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RebuildNow().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RebuildNow: RebuildNow::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMRebuild as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMResourceControl_Impl: Sized {
fn Reserve(&self, dwflags: u32, pvreserved: *const ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMResourceControl {}
impl IAMResourceControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMResourceControl_Impl, const OFFSET: isize>() -> IAMResourceControl_Vtbl {
unsafe extern "system" fn Reserve<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMResourceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, pvreserved: *const ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reserve(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&pvreserved)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Reserve: Reserve::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMResourceControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IAMStats_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Reset(&self) -> ::windows_core::Result<()>;
fn Count(&self) -> ::windows_core::Result<i32>;
fn GetValueByIndex(&self, lindex: i32, szname: *mut ::windows_core::BSTR, lcount: *mut i32, dlast: *mut f64, daverage: *mut f64, dstddev: *mut f64, dmin: *mut f64, dmax: *mut f64) -> ::windows_core::Result<()>;
fn GetValueByName(&self, szname: &::windows_core::BSTR, lindex: *mut i32, lcount: *mut i32, dlast: *mut f64, daverage: *mut f64, dstddev: *mut f64, dmin: *mut f64, dmax: *mut f64) -> ::windows_core::Result<()>;
fn GetIndex(&self, szname: &::windows_core::BSTR, lcreate: i32) -> ::windows_core::Result<i32>;
fn AddValue(&self, lindex: i32, dvalue: f64) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IAMStats {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IAMStats_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>() -> IAMStats_Vtbl {
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValueByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, szname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, lcount: *mut i32, dlast: *mut f64, daverage: *mut f64, dstddev: *mut f64, dmin: *mut f64, dmax: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValueByIndex(::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&szname), ::core::mem::transmute_copy(&lcount), ::core::mem::transmute_copy(&dlast), ::core::mem::transmute_copy(&daverage), ::core::mem::transmute_copy(&dstddev), ::core::mem::transmute_copy(&dmin), ::core::mem::transmute_copy(&dmax)).into()
}
unsafe extern "system" fn GetValueByName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, szname: ::std::mem::MaybeUninit<::windows_core::BSTR>, lindex: *mut i32, lcount: *mut i32, dlast: *mut f64, daverage: *mut f64, dstddev: *mut f64, dmin: *mut f64, dmax: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetValueByName(::core::mem::transmute(&szname), ::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&lcount), ::core::mem::transmute_copy(&dlast), ::core::mem::transmute_copy(&daverage), ::core::mem::transmute_copy(&dstddev), ::core::mem::transmute_copy(&dmin), ::core::mem::transmute_copy(&dmax)).into()
}
unsafe extern "system" fn GetIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, szname: ::std::mem::MaybeUninit<::windows_core::BSTR>, lcreate: i32, plindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIndex(::core::mem::transmute(&szname), ::core::mem::transmute_copy(&lcreate)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AddValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStats_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, dvalue: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddValue(::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&dvalue)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Reset: Reset::<Identity, Impl, OFFSET>,
Count: Count::<Identity, Impl, OFFSET>,
GetValueByIndex: GetValueByIndex::<Identity, Impl, OFFSET>,
GetValueByName: GetValueByName::<Identity, Impl, OFFSET>,
GetIndex: GetIndex::<Identity, Impl, OFFSET>,
AddValue: AddValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMStats as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IAMStreamConfig_Impl: Sized {
fn SetFormat(&self, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn GetFormat(&self) -> ::windows_core::Result<*mut super::MediaFoundation::AM_MEDIA_TYPE>;
fn GetNumberOfCapabilities(&self, picount: *mut i32, pisize: *mut i32) -> ::windows_core::Result<()>;
fn GetStreamCaps(&self, iindex: i32, ppmt: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pscc: *mut u8) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IAMStreamConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IAMStreamConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamConfig_Impl, const OFFSET: isize>() -> IAMStreamConfig_Vtbl {
unsafe extern "system" fn SetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFormat(::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmt: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmt, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumberOfCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, picount: *mut i32, pisize: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberOfCapabilities(::core::mem::transmute_copy(&picount), ::core::mem::transmute_copy(&pisize)).into()
}
unsafe extern "system" fn GetStreamCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iindex: i32, ppmt: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pscc: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStreamCaps(::core::mem::transmute_copy(&iindex), ::core::mem::transmute_copy(&ppmt), ::core::mem::transmute_copy(&pscc)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFormat: SetFormat::<Identity, Impl, OFFSET>,
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
GetNumberOfCapabilities: GetNumberOfCapabilities::<Identity, Impl, OFFSET>,
GetStreamCaps: GetStreamCaps::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMStreamConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMStreamControl_Impl: Sized {
fn StartAt(&self, ptstart: *const i64, dwcookie: u32) -> ::windows_core::Result<()>;
fn StopAt(&self, ptstop: *const i64, bsendextra: super::super::Foundation::BOOL, dwcookie: u32) -> ::windows_core::Result<()>;
fn GetInfo(&self, pinfo: *mut AM_STREAM_INFO) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMStreamControl {}
#[cfg(feature = "Win32_Foundation")]
impl IAMStreamControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamControl_Impl, const OFFSET: isize>() -> IAMStreamControl_Vtbl {
unsafe extern "system" fn StartAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptstart: *const i64, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartAt(::core::mem::transmute_copy(&ptstart), ::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn StopAt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptstop: *const i64, bsendextra: super::super::Foundation::BOOL, dwcookie: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopAt(::core::mem::transmute_copy(&ptstop), ::core::mem::transmute_copy(&bsendextra), ::core::mem::transmute_copy(&dwcookie)).into()
}
unsafe extern "system" fn GetInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut AM_STREAM_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInfo(::core::mem::transmute_copy(&pinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartAt: StartAt::<Identity, Impl, OFFSET>,
StopAt: StopAt::<Identity, Impl, OFFSET>,
GetInfo: GetInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMStreamControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IAMStreamSelect_Impl: Sized {
fn Count(&self) -> ::windows_core::Result<u32>;
fn Info(&self, lindex: i32, ppmt: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pdwflags: *mut u32, plcid: *mut u32, pdwgroup: *mut u32, ppszname: *mut ::windows_core::PWSTR, ppobject: *mut ::core::option::Option<::windows_core::IUnknown>, ppunk: *mut ::core::option::Option<::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn Enable(&self, lindex: i32, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IAMStreamSelect {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IAMStreamSelect_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamSelect_Impl, const OFFSET: isize>() -> IAMStreamSelect_Vtbl {
unsafe extern "system" fn Count<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamSelect_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcstreams: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Count() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcstreams, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Info<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamSelect_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, ppmt: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pdwflags: *mut u32, plcid: *mut u32, pdwgroup: *mut u32, ppszname: *mut ::windows_core::PWSTR, ppobject: *mut *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Info(::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&ppmt), ::core::mem::transmute_copy(&pdwflags), ::core::mem::transmute_copy(&plcid), ::core::mem::transmute_copy(&pdwgroup), ::core::mem::transmute_copy(&ppszname), ::core::mem::transmute_copy(&ppobject), ::core::mem::transmute_copy(&ppunk)).into()
}
unsafe extern "system" fn Enable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMStreamSelect_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Enable(::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Count: Count::<Identity, Impl, OFFSET>,
Info: Info::<Identity, Impl, OFFSET>,
Enable: Enable::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMStreamSelect as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTVAudio_Impl: Sized {
fn GetHardwareSupportedTVAudioModes(&self) -> ::windows_core::Result<i32>;
fn GetAvailableTVAudioModes(&self) -> ::windows_core::Result<i32>;
fn TVAudioMode(&self) -> ::windows_core::Result<i32>;
fn SetTVAudioMode(&self, lmode: i32) -> ::windows_core::Result<()>;
fn RegisterNotificationCallBack(&self, pnotify: ::core::option::Option<&IAMTunerNotification>, levents: i32) -> ::windows_core::Result<()>;
fn UnRegisterNotificationCallBack(&self, pnotify: ::core::option::Option<&IAMTunerNotification>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTVAudio {}
impl IAMTVAudio_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>() -> IAMTVAudio_Vtbl {
unsafe extern "system" fn GetHardwareSupportedTVAudioModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmodes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHardwareSupportedTVAudioModes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plmodes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAvailableTVAudioModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmodes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAvailableTVAudioModes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plmodes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TVAudioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TVAudioMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTVAudioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lmode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTVAudioMode(::core::mem::transmute_copy(&lmode)).into()
}
unsafe extern "system" fn RegisterNotificationCallBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnotify: *mut ::core::ffi::c_void, levents: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterNotificationCallBack(::windows_core::from_raw_borrowed(&pnotify), ::core::mem::transmute_copy(&levents)).into()
}
unsafe extern "system" fn UnRegisterNotificationCallBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnotify: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnRegisterNotificationCallBack(::windows_core::from_raw_borrowed(&pnotify)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetHardwareSupportedTVAudioModes: GetHardwareSupportedTVAudioModes::<Identity, Impl, OFFSET>,
GetAvailableTVAudioModes: GetAvailableTVAudioModes::<Identity, Impl, OFFSET>,
TVAudioMode: TVAudioMode::<Identity, Impl, OFFSET>,
SetTVAudioMode: SetTVAudioMode::<Identity, Impl, OFFSET>,
RegisterNotificationCallBack: RegisterNotificationCallBack::<Identity, Impl, OFFSET>,
UnRegisterNotificationCallBack: UnRegisterNotificationCallBack::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTVAudio as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTVAudioNotification_Impl: Sized {
fn OnEvent(&self, event: AMTVAudioEventType) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTVAudioNotification {}
impl IAMTVAudioNotification_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudioNotification_Impl, const OFFSET: isize>() -> IAMTVAudioNotification_Vtbl {
unsafe extern "system" fn OnEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVAudioNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, event: AMTVAudioEventType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnEvent(::core::mem::transmute_copy(&event)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnEvent: OnEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTVAudioNotification as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMTVTuner_Impl: Sized + IAMTuner_Impl {
fn AvailableTVFormats(&self) -> ::windows_core::Result<i32>;
fn TVFormat(&self) -> ::windows_core::Result<i32>;
fn AutoTune(&self, lchannel: i32) -> ::windows_core::Result<i32>;
fn StoreAutoTune(&self) -> ::windows_core::Result<()>;
fn NumInputConnections(&self) -> ::windows_core::Result<i32>;
fn put_InputType(&self, lindex: i32, inputtype: TunerInputType) -> ::windows_core::Result<()>;
fn get_InputType(&self, lindex: i32) -> ::windows_core::Result<TunerInputType>;
fn SetConnectInput(&self, lindex: i32) -> ::windows_core::Result<()>;
fn ConnectInput(&self) -> ::windows_core::Result<i32>;
fn VideoFrequency(&self) -> ::windows_core::Result<i32>;
fn AudioFrequency(&self) -> ::windows_core::Result<i32>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMTVTuner {}
#[cfg(feature = "Win32_Foundation")]
impl IAMTVTuner_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>() -> IAMTVTuner_Vtbl {
unsafe extern "system" fn AvailableTVFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lanalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvailableTVFormats() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lanalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TVFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planalogvideostandard: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TVFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planalogvideostandard, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AutoTune<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lchannel: i32, plfoundsignal: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AutoTune(::core::mem::transmute_copy(&lchannel)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plfoundsignal, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StoreAutoTune<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StoreAutoTune().into()
}
unsafe extern "system" fn NumInputConnections<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plnuminputconnections: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NumInputConnections() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plnuminputconnections, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn put_InputType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, inputtype: TunerInputType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_InputType(::core::mem::transmute_copy(&lindex), ::core::mem::transmute_copy(&inputtype)).into()
}
unsafe extern "system" fn get_InputType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32, pinputtype: *mut TunerInputType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_InputType(::core::mem::transmute_copy(&lindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pinputtype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetConnectInput<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lindex: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetConnectInput(::core::mem::transmute_copy(&lindex)).into()
}
unsafe extern "system" fn ConnectInput<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plindex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectInput() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn VideoFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lfreq: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VideoFrequency() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lfreq, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AudioFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTVTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lfreq: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AudioFrequency() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lfreq, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IAMTuner_Vtbl::new::<Identity, Impl, OFFSET>(),
AvailableTVFormats: AvailableTVFormats::<Identity, Impl, OFFSET>,
TVFormat: TVFormat::<Identity, Impl, OFFSET>,
AutoTune: AutoTune::<Identity, Impl, OFFSET>,
StoreAutoTune: StoreAutoTune::<Identity, Impl, OFFSET>,
NumInputConnections: NumInputConnections::<Identity, Impl, OFFSET>,
put_InputType: put_InputType::<Identity, Impl, OFFSET>,
get_InputType: get_InputType::<Identity, Impl, OFFSET>,
SetConnectInput: SetConnectInput::<Identity, Impl, OFFSET>,
ConnectInput: ConnectInput::<Identity, Impl, OFFSET>,
VideoFrequency: VideoFrequency::<Identity, Impl, OFFSET>,
AudioFrequency: AudioFrequency::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTVTuner as ::windows_core::ComInterface>::IID || iid == &<IAMTuner as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTimecodeDisplay_Impl: Sized {
fn GetTCDisplayEnable(&self) -> ::windows_core::Result<i32>;
fn SetTCDisplayEnable(&self, state: i32) -> ::windows_core::Result<()>;
fn GetTCDisplay(&self, param: i32) -> ::windows_core::Result<i32>;
fn SetTCDisplay(&self, param: i32, value: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTimecodeDisplay {}
impl IAMTimecodeDisplay_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeDisplay_Impl, const OFFSET: isize>() -> IAMTimecodeDisplay_Vtbl {
unsafe extern "system" fn GetTCDisplayEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeDisplay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTCDisplayEnable() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTCDisplayEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeDisplay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTCDisplayEnable(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn GetTCDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeDisplay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTCDisplay(::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTCDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeDisplay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTCDisplay(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTCDisplayEnable: GetTCDisplayEnable::<Identity, Impl, OFFSET>,
SetTCDisplayEnable: SetTCDisplayEnable::<Identity, Impl, OFFSET>,
GetTCDisplay: GetTCDisplay::<Identity, Impl, OFFSET>,
SetTCDisplay: SetTCDisplay::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTimecodeDisplay as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTimecodeGenerator_Impl: Sized {
fn GetTCGMode(&self, param: i32) -> ::windows_core::Result<i32>;
fn SetTCGMode(&self, param: i32, value: i32) -> ::windows_core::Result<()>;
fn SetVITCLine(&self, line: i32) -> ::windows_core::Result<()>;
fn VITCLine(&self) -> ::windows_core::Result<i32>;
fn SetTimecode(&self, ptimecodesample: *const super::TIMECODE_SAMPLE) -> ::windows_core::Result<()>;
fn GetTimecode(&self, ptimecodesample: *mut super::TIMECODE_SAMPLE) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTimecodeGenerator {}
impl IAMTimecodeGenerator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>() -> IAMTimecodeGenerator_Vtbl {
unsafe extern "system" fn GetTCGMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTCGMode(::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTCGMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTCGMode(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetVITCLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVITCLine(::core::mem::transmute_copy(&line)).into()
}
unsafe extern "system" fn VITCLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pline: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VITCLine() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pline, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTimecode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimecodesample: *const super::TIMECODE_SAMPLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTimecode(::core::mem::transmute_copy(&ptimecodesample)).into()
}
unsafe extern "system" fn GetTimecode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeGenerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimecodesample: *mut super::TIMECODE_SAMPLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTimecode(::core::mem::transmute_copy(&ptimecodesample)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTCGMode: GetTCGMode::<Identity, Impl, OFFSET>,
SetTCGMode: SetTCGMode::<Identity, Impl, OFFSET>,
SetVITCLine: SetVITCLine::<Identity, Impl, OFFSET>,
VITCLine: VITCLine::<Identity, Impl, OFFSET>,
SetTimecode: SetTimecode::<Identity, Impl, OFFSET>,
GetTimecode: GetTimecode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTimecodeGenerator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTimecodeReader_Impl: Sized {
fn GetTCRMode(&self, param: i32) -> ::windows_core::Result<i32>;
fn SetTCRMode(&self, param: i32, value: i32) -> ::windows_core::Result<()>;
fn SetVITCLine(&self, line: i32) -> ::windows_core::Result<()>;
fn VITCLine(&self) -> ::windows_core::Result<i32>;
fn GetTimecode(&self, ptimecodesample: *mut super::TIMECODE_SAMPLE) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTimecodeReader {}
impl IAMTimecodeReader_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>() -> IAMTimecodeReader_Vtbl {
unsafe extern "system" fn GetTCRMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, pvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTCRMode(::core::mem::transmute_copy(&param)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTCRMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, param: i32, value: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTCRMode(::core::mem::transmute_copy(&param), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn SetVITCLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, line: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVITCLine(::core::mem::transmute_copy(&line)).into()
}
unsafe extern "system" fn VITCLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pline: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VITCLine() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pline, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTimecode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTimecodeReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimecodesample: *mut super::TIMECODE_SAMPLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTimecode(::core::mem::transmute_copy(&ptimecodesample)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetTCRMode: GetTCRMode::<Identity, Impl, OFFSET>,
SetTCRMode: SetTCRMode::<Identity, Impl, OFFSET>,
SetVITCLine: SetVITCLine::<Identity, Impl, OFFSET>,
VITCLine: VITCLine::<Identity, Impl, OFFSET>,
GetTimecode: GetTimecode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTimecodeReader as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMTuner_Impl: Sized {
fn put_Channel(&self, lchannel: i32, lvideosubchannel: i32, laudiosubchannel: i32) -> ::windows_core::Result<()>;
fn get_Channel(&self, plchannel: *mut i32, plvideosubchannel: *mut i32, plaudiosubchannel: *mut i32) -> ::windows_core::Result<()>;
fn ChannelMinMax(&self, lchannelmin: *mut i32, lchannelmax: *mut i32) -> ::windows_core::Result<()>;
fn SetCountryCode(&self, lcountrycode: i32) -> ::windows_core::Result<()>;
fn CountryCode(&self) -> ::windows_core::Result<i32>;
fn SetTuningSpace(&self, ltuningspace: i32) -> ::windows_core::Result<()>;
fn TuningSpace(&self) -> ::windows_core::Result<i32>;
fn Logon(&self, hcurrentuser: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn Logout(&self) -> ::windows_core::Result<()>;
fn SignalPresent(&self) -> ::windows_core::Result<i32>;
fn SetMode(&self, lmode: AMTunerModeType) -> ::windows_core::Result<()>;
fn Mode(&self) -> ::windows_core::Result<AMTunerModeType>;
fn GetAvailableModes(&self) -> ::windows_core::Result<i32>;
fn RegisterNotificationCallBack(&self, pnotify: ::core::option::Option<&IAMTunerNotification>, levents: i32) -> ::windows_core::Result<()>;
fn UnRegisterNotificationCallBack(&self, pnotify: ::core::option::Option<&IAMTunerNotification>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMTuner {}
#[cfg(feature = "Win32_Foundation")]
impl IAMTuner_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>() -> IAMTuner_Vtbl {
unsafe extern "system" fn put_Channel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lchannel: i32, lvideosubchannel: i32, laudiosubchannel: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Channel(::core::mem::transmute_copy(&lchannel), ::core::mem::transmute_copy(&lvideosubchannel), ::core::mem::transmute_copy(&laudiosubchannel)).into()
}
unsafe extern "system" fn get_Channel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plchannel: *mut i32, plvideosubchannel: *mut i32, plaudiosubchannel: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Channel(::core::mem::transmute_copy(&plchannel), ::core::mem::transmute_copy(&plvideosubchannel), ::core::mem::transmute_copy(&plaudiosubchannel)).into()
}
unsafe extern "system" fn ChannelMinMax<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lchannelmin: *mut i32, lchannelmax: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChannelMinMax(::core::mem::transmute_copy(&lchannelmin), ::core::mem::transmute_copy(&lchannelmax)).into()
}
unsafe extern "system" fn SetCountryCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lcountrycode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCountryCode(::core::mem::transmute_copy(&lcountrycode)).into()
}
unsafe extern "system" fn CountryCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plcountrycode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CountryCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plcountrycode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ltuningspace: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTuningSpace(::core::mem::transmute_copy(&ltuningspace)).into()
}
unsafe extern "system" fn TuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pltuningspace: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.TuningSpace() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pltuningspace, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Logon<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hcurrentuser: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Logon(::core::mem::transmute_copy(&hcurrentuser)).into()
}
unsafe extern "system" fn Logout<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Logout().into()
}
unsafe extern "system" fn SignalPresent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plsignalstrength: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SignalPresent() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plsignalstrength, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lmode: AMTunerModeType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&lmode)).into()
}
unsafe extern "system" fn Mode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmode: *mut AMTunerModeType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Mode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAvailableModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmodes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAvailableModes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plmodes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterNotificationCallBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnotify: *mut ::core::ffi::c_void, levents: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterNotificationCallBack(::windows_core::from_raw_borrowed(&pnotify), ::core::mem::transmute_copy(&levents)).into()
}
unsafe extern "system" fn UnRegisterNotificationCallBack<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnotify: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnRegisterNotificationCallBack(::windows_core::from_raw_borrowed(&pnotify)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
put_Channel: put_Channel::<Identity, Impl, OFFSET>,
get_Channel: get_Channel::<Identity, Impl, OFFSET>,
ChannelMinMax: ChannelMinMax::<Identity, Impl, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, Impl, OFFSET>,
CountryCode: CountryCode::<Identity, Impl, OFFSET>,
SetTuningSpace: SetTuningSpace::<Identity, Impl, OFFSET>,
TuningSpace: TuningSpace::<Identity, Impl, OFFSET>,
Logon: Logon::<Identity, Impl, OFFSET>,
Logout: Logout::<Identity, Impl, OFFSET>,
SignalPresent: SignalPresent::<Identity, Impl, OFFSET>,
SetMode: SetMode::<Identity, Impl, OFFSET>,
Mode: Mode::<Identity, Impl, OFFSET>,
GetAvailableModes: GetAvailableModes::<Identity, Impl, OFFSET>,
RegisterNotificationCallBack: RegisterNotificationCallBack::<Identity, Impl, OFFSET>,
UnRegisterNotificationCallBack: UnRegisterNotificationCallBack::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTuner as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMTunerNotification_Impl: Sized {
fn OnEvent(&self, event: AMTunerEventType) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMTunerNotification {}
impl IAMTunerNotification_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTunerNotification_Impl, const OFFSET: isize>() -> IAMTunerNotification_Vtbl {
unsafe extern "system" fn OnEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMTunerNotification_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, event: AMTunerEventType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnEvent(::core::mem::transmute_copy(&event)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnEvent: OnEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMTunerNotification as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMVfwCaptureDialogs_Impl: Sized {
fn HasDialog(&self, idialog: i32) -> ::windows_core::Result<()>;
fn ShowDialog(&self, idialog: i32, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn SendDriverMessage(&self, idialog: i32, umsg: i32, dw1: i32, dw2: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMVfwCaptureDialogs {}
#[cfg(feature = "Win32_Foundation")]
impl IAMVfwCaptureDialogs_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCaptureDialogs_Impl, const OFFSET: isize>() -> IAMVfwCaptureDialogs_Vtbl {
unsafe extern "system" fn HasDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCaptureDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idialog: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HasDialog(::core::mem::transmute_copy(&idialog)).into()
}
unsafe extern "system" fn ShowDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCaptureDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idialog: i32, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowDialog(::core::mem::transmute_copy(&idialog), ::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn SendDriverMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCaptureDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idialog: i32, umsg: i32, dw1: i32, dw2: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SendDriverMessage(::core::mem::transmute_copy(&idialog), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&dw1), ::core::mem::transmute_copy(&dw2)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
HasDialog: HasDialog::<Identity, Impl, OFFSET>,
ShowDialog: ShowDialog::<Identity, Impl, OFFSET>,
SendDriverMessage: SendDriverMessage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVfwCaptureDialogs as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMVfwCompressDialogs_Impl: Sized {
fn ShowDialog(&self, idialog: i32, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn GetState(&self, pstate: *mut ::core::ffi::c_void, pcbstate: *mut i32) -> ::windows_core::Result<()>;
fn SetState(&self, pstate: *const ::core::ffi::c_void, cbstate: i32) -> ::windows_core::Result<()>;
fn SendDriverMessage(&self, umsg: i32, dw1: i32, dw2: i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMVfwCompressDialogs {}
#[cfg(feature = "Win32_Foundation")]
impl IAMVfwCompressDialogs_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCompressDialogs_Impl, const OFFSET: isize>() -> IAMVfwCompressDialogs_Vtbl {
unsafe extern "system" fn ShowDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCompressDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idialog: i32, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShowDialog(::core::mem::transmute_copy(&idialog), ::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCompressDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut ::core::ffi::c_void, pcbstate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetState(::core::mem::transmute_copy(&pstate), ::core::mem::transmute_copy(&pcbstate)).into()
}
unsafe extern "system" fn SetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCompressDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *const ::core::ffi::c_void, cbstate: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetState(::core::mem::transmute_copy(&pstate), ::core::mem::transmute_copy(&cbstate)).into()
}
unsafe extern "system" fn SendDriverMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVfwCompressDialogs_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, umsg: i32, dw1: i32, dw2: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SendDriverMessage(::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&dw1), ::core::mem::transmute_copy(&dw2)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ShowDialog: ShowDialog::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
SetState: SetState::<Identity, Impl, OFFSET>,
SendDriverMessage: SendDriverMessage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVfwCompressDialogs as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IAMVideoAccelerator_Impl: Sized {
fn GetVideoAcceleratorGUIDs(&self, pdwnumguidssupported: *mut u32, pguidssupported: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetUncompFormatsSupported(&self, pguid: *const ::windows_core::GUID, pdwnumformatssupported: *mut u32, pformatssupported: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::Result<()>;
fn GetInternalMemInfo(&self, pguid: *const ::windows_core::GUID, pamvauncompdatainfo: *const AMVAUncompDataInfo, pamvainternalmeminfo: *mut AMVAInternalMemInfo) -> ::windows_core::Result<()>;
fn GetCompBufferInfo(&self, pguid: *const ::windows_core::GUID, pamvauncompdatainfo: *const AMVAUncompDataInfo, pdwnumtypescompbuffers: *mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows_core::Result<()>;
fn GetInternalCompBufferInfo(&self, pdwnumtypescompbuffers: *mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows_core::Result<()>;
fn BeginFrame(&self, amvabeginframeinfo: *const AMVABeginFrameInfo) -> ::windows_core::Result<()>;
fn EndFrame(&self, pendframeinfo: *const AMVAEndFrameInfo) -> ::windows_core::Result<()>;
fn GetBuffer(&self, dwtypeindex: u32, dwbufferindex: u32, breadonly: super::super::Foundation::BOOL, ppbuffer: *mut *mut ::core::ffi::c_void, lpstride: *mut i32) -> ::windows_core::Result<()>;
fn ReleaseBuffer(&self, dwtypeindex: u32, dwbufferindex: u32) -> ::windows_core::Result<()>;
fn Execute(&self, dwfunction: u32, lpprivateinputdata: *const ::core::ffi::c_void, cbprivateinputdata: u32, lpprivateoutputdat: *const ::core::ffi::c_void, cbprivateoutputdata: u32, dwnumbuffers: u32, pamvabufferinfo: *const AMVABUFFERINFO) -> ::windows_core::Result<()>;
fn QueryRenderStatus(&self, dwtypeindex: u32, dwbufferindex: u32, dwflags: u32) -> ::windows_core::Result<()>;
fn DisplayFrame(&self, dwfliptoindex: u32, pmediasample: ::core::option::Option<&IMediaSample>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IAMVideoAccelerator {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IAMVideoAccelerator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>() -> IAMVideoAccelerator_Vtbl {
unsafe extern "system" fn GetVideoAcceleratorGUIDs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumguidssupported: *mut u32, pguidssupported: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoAcceleratorGUIDs(::core::mem::transmute_copy(&pdwnumguidssupported), ::core::mem::transmute_copy(&pguidssupported)).into()
}
unsafe extern "system" fn GetUncompFormatsSupported<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, pdwnumformatssupported: *mut u32, pformatssupported: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUncompFormatsSupported(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pdwnumformatssupported), ::core::mem::transmute_copy(&pformatssupported)).into()
}
unsafe extern "system" fn GetInternalMemInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, pamvauncompdatainfo: *const AMVAUncompDataInfo, pamvainternalmeminfo: *mut AMVAInternalMemInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInternalMemInfo(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pamvauncompdatainfo), ::core::mem::transmute_copy(&pamvainternalmeminfo)).into()
}
unsafe extern "system" fn GetCompBufferInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, pamvauncompdatainfo: *const AMVAUncompDataInfo, pdwnumtypescompbuffers: *mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCompBufferInfo(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pamvauncompdatainfo), ::core::mem::transmute_copy(&pdwnumtypescompbuffers), ::core::mem::transmute_copy(&pamvacompbufferinfo)).into()
}
unsafe extern "system" fn GetInternalCompBufferInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumtypescompbuffers: *mut u32, pamvacompbufferinfo: *mut AMVACompBufferInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInternalCompBufferInfo(::core::mem::transmute_copy(&pdwnumtypescompbuffers), ::core::mem::transmute_copy(&pamvacompbufferinfo)).into()
}
unsafe extern "system" fn BeginFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, amvabeginframeinfo: *const AMVABeginFrameInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BeginFrame(::core::mem::transmute_copy(&amvabeginframeinfo)).into()
}
unsafe extern "system" fn EndFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pendframeinfo: *const AMVAEndFrameInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndFrame(::core::mem::transmute_copy(&pendframeinfo)).into()
}
unsafe extern "system" fn GetBuffer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtypeindex: u32, dwbufferindex: u32, breadonly: super::super::Foundation::BOOL, ppbuffer: *mut *mut ::core::ffi::c_void, lpstride: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBuffer(::core::mem::transmute_copy(&dwtypeindex), ::core::mem::transmute_copy(&dwbufferindex), ::core::mem::transmute_copy(&breadonly), ::core::mem::transmute_copy(&ppbuffer), ::core::mem::transmute_copy(&lpstride)).into()
}
unsafe extern "system" fn ReleaseBuffer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtypeindex: u32, dwbufferindex: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseBuffer(::core::mem::transmute_copy(&dwtypeindex), ::core::mem::transmute_copy(&dwbufferindex)).into()
}
unsafe extern "system" fn Execute<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfunction: u32, lpprivateinputdata: *const ::core::ffi::c_void, cbprivateinputdata: u32, lpprivateoutputdat: *const ::core::ffi::c_void, cbprivateoutputdata: u32, dwnumbuffers: u32, pamvabufferinfo: *const AMVABUFFERINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Execute(::core::mem::transmute_copy(&dwfunction), ::core::mem::transmute_copy(&lpprivateinputdata), ::core::mem::transmute_copy(&cbprivateinputdata), ::core::mem::transmute_copy(&lpprivateoutputdat), ::core::mem::transmute_copy(&cbprivateoutputdata), ::core::mem::transmute_copy(&dwnumbuffers), ::core::mem::transmute_copy(&pamvabufferinfo)).into()
}
unsafe extern "system" fn QueryRenderStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtypeindex: u32, dwbufferindex: u32, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryRenderStatus(::core::mem::transmute_copy(&dwtypeindex), ::core::mem::transmute_copy(&dwbufferindex), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn DisplayFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwfliptoindex: u32, pmediasample: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisplayFrame(::core::mem::transmute_copy(&dwfliptoindex), ::windows_core::from_raw_borrowed(&pmediasample)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetVideoAcceleratorGUIDs: GetVideoAcceleratorGUIDs::<Identity, Impl, OFFSET>,
GetUncompFormatsSupported: GetUncompFormatsSupported::<Identity, Impl, OFFSET>,
GetInternalMemInfo: GetInternalMemInfo::<Identity, Impl, OFFSET>,
GetCompBufferInfo: GetCompBufferInfo::<Identity, Impl, OFFSET>,
GetInternalCompBufferInfo: GetInternalCompBufferInfo::<Identity, Impl, OFFSET>,
BeginFrame: BeginFrame::<Identity, Impl, OFFSET>,
EndFrame: EndFrame::<Identity, Impl, OFFSET>,
GetBuffer: GetBuffer::<Identity, Impl, OFFSET>,
ReleaseBuffer: ReleaseBuffer::<Identity, Impl, OFFSET>,
Execute: Execute::<Identity, Impl, OFFSET>,
QueryRenderStatus: QueryRenderStatus::<Identity, Impl, OFFSET>,
DisplayFrame: DisplayFrame::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoAccelerator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectDraw")]
pub trait IAMVideoAcceleratorNotify_Impl: Sized {
fn GetUncompSurfacesInfo(&self, pguid: *const ::windows_core::GUID, puncompbufferinfo: *mut AMVAUncompBufferInfo) -> ::windows_core::Result<()>;
fn SetUncompSurfacesInfo(&self, dwactualuncompsurfacesallocated: u32) -> ::windows_core::Result<()>;
fn GetCreateVideoAcceleratorData(&self, pguid: *const ::windows_core::GUID, pdwsizemiscdata: *mut u32, ppmiscdata: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl ::windows_core::RuntimeName for IAMVideoAcceleratorNotify {}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl IAMVideoAcceleratorNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAcceleratorNotify_Impl, const OFFSET: isize>() -> IAMVideoAcceleratorNotify_Vtbl {
unsafe extern "system" fn GetUncompSurfacesInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAcceleratorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, puncompbufferinfo: *mut AMVAUncompBufferInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetUncompSurfacesInfo(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&puncompbufferinfo)).into()
}
unsafe extern "system" fn SetUncompSurfacesInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAcceleratorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwactualuncompsurfacesallocated: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUncompSurfacesInfo(::core::mem::transmute_copy(&dwactualuncompsurfacesallocated)).into()
}
unsafe extern "system" fn GetCreateVideoAcceleratorData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoAcceleratorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const ::windows_core::GUID, pdwsizemiscdata: *mut u32, ppmiscdata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCreateVideoAcceleratorData(::core::mem::transmute_copy(&pguid), ::core::mem::transmute_copy(&pdwsizemiscdata), ::core::mem::transmute_copy(&ppmiscdata)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetUncompSurfacesInfo: GetUncompSurfacesInfo::<Identity, Impl, OFFSET>,
SetUncompSurfacesInfo: SetUncompSurfacesInfo::<Identity, Impl, OFFSET>,
GetCreateVideoAcceleratorData: GetCreateVideoAcceleratorData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoAcceleratorNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMVideoCompression_Impl: Sized {
fn SetKeyFrameRate(&self, keyframerate: i32) -> ::windows_core::Result<()>;
fn KeyFrameRate(&self) -> ::windows_core::Result<i32>;
fn SetPFramesPerKeyFrame(&self, pframesperkeyframe: i32) -> ::windows_core::Result<()>;
fn PFramesPerKeyFrame(&self) -> ::windows_core::Result<i32>;
fn SetQuality(&self, quality: f64) -> ::windows_core::Result<()>;
fn Quality(&self) -> ::windows_core::Result<f64>;
fn SetWindowSize(&self, windowsize: u64) -> ::windows_core::Result<()>;
fn WindowSize(&self) -> ::windows_core::Result<u64>;
fn GetInfo(&self, pszversion: ::windows_core::PWSTR, pcbversion: *mut i32, pszdescription: ::windows_core::PWSTR, pcbdescription: *mut i32, pdefaultkeyframerate: *mut i32, pdefaultpframesperkey: *mut i32, pdefaultquality: *mut f64, pcapabilities: *mut i32) -> ::windows_core::Result<()>;
fn OverrideKeyFrame(&self, framenumber: i32) -> ::windows_core::Result<()>;
fn OverrideFrameSize(&self, framenumber: i32, size: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMVideoCompression {}
impl IAMVideoCompression_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>() -> IAMVideoCompression_Vtbl {
unsafe extern "system" fn SetKeyFrameRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keyframerate: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetKeyFrameRate(::core::mem::transmute_copy(&keyframerate)).into()
}
unsafe extern "system" fn KeyFrameRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkeyframerate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.KeyFrameRate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pkeyframerate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPFramesPerKeyFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pframesperkeyframe: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPFramesPerKeyFrame(::core::mem::transmute_copy(&pframesperkeyframe)).into()
}
unsafe extern "system" fn PFramesPerKeyFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppframesperkeyframe: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PFramesPerKeyFrame() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppframesperkeyframe, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetQuality<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, quality: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetQuality(::core::mem::transmute_copy(&quality)).into()
}
unsafe extern "system" fn Quality<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pquality: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Quality() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pquality, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWindowSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowsize: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowSize(::core::mem::transmute_copy(&windowsize)).into()
}
unsafe extern "system" fn WindowSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwindowsize: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WindowSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwindowsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszversion: ::windows_core::PWSTR, pcbversion: *mut i32, pszdescription: ::windows_core::PWSTR, pcbdescription: *mut i32, pdefaultkeyframerate: *mut i32, pdefaultpframesperkey: *mut i32, pdefaultquality: *mut f64, pcapabilities: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInfo(::core::mem::transmute_copy(&pszversion), ::core::mem::transmute_copy(&pcbversion), ::core::mem::transmute_copy(&pszdescription), ::core::mem::transmute_copy(&pcbdescription), ::core::mem::transmute_copy(&pdefaultkeyframerate), ::core::mem::transmute_copy(&pdefaultpframesperkey), ::core::mem::transmute_copy(&pdefaultquality), ::core::mem::transmute_copy(&pcapabilities)).into()
}
unsafe extern "system" fn OverrideKeyFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, framenumber: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OverrideKeyFrame(::core::mem::transmute_copy(&framenumber)).into()
}
unsafe extern "system" fn OverrideFrameSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoCompression_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, framenumber: i32, size: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OverrideFrameSize(::core::mem::transmute_copy(&framenumber), ::core::mem::transmute_copy(&size)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetKeyFrameRate: SetKeyFrameRate::<Identity, Impl, OFFSET>,
KeyFrameRate: KeyFrameRate::<Identity, Impl, OFFSET>,
SetPFramesPerKeyFrame: SetPFramesPerKeyFrame::<Identity, Impl, OFFSET>,
PFramesPerKeyFrame: PFramesPerKeyFrame::<Identity, Impl, OFFSET>,
SetQuality: SetQuality::<Identity, Impl, OFFSET>,
Quality: Quality::<Identity, Impl, OFFSET>,
SetWindowSize: SetWindowSize::<Identity, Impl, OFFSET>,
WindowSize: WindowSize::<Identity, Impl, OFFSET>,
GetInfo: GetInfo::<Identity, Impl, OFFSET>,
OverrideKeyFrame: OverrideKeyFrame::<Identity, Impl, OFFSET>,
OverrideFrameSize: OverrideFrameSize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoCompression as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAMVideoControl_Impl: Sized {
fn GetCaps(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<i32>;
fn SetMode(&self, ppin: ::core::option::Option<&IPin>, mode: i32) -> ::windows_core::Result<()>;
fn GetMode(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<i32>;
fn GetCurrentActualFrameRate(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<i64>;
fn GetMaxAvailableFrameRate(&self, ppin: ::core::option::Option<&IPin>, iindex: i32, dimensions: &super::super::Foundation::SIZE) -> ::windows_core::Result<i64>;
fn GetFrameRateList(&self, ppin: ::core::option::Option<&IPin>, iindex: i32, dimensions: &super::super::Foundation::SIZE, listsize: *mut i32, framerates: *mut *mut i64) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAMVideoControl {}
#[cfg(feature = "Win32_Foundation")]
impl IAMVideoControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>() -> IAMVideoControl_Vtbl {
unsafe extern "system" fn GetCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, pcapsflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCaps(::windows_core::from_raw_borrowed(&ppin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcapsflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, mode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn GetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, mode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMode(::windows_core::from_raw_borrowed(&ppin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentActualFrameRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, actualframerate: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentActualFrameRate(::windows_core::from_raw_borrowed(&ppin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(actualframerate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMaxAvailableFrameRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, iindex: i32, dimensions: super::super::Foundation::SIZE, maxavailableframerate: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMaxAvailableFrameRate(::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&iindex), ::core::mem::transmute(&dimensions)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(maxavailableframerate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetFrameRateList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, iindex: i32, dimensions: super::super::Foundation::SIZE, listsize: *mut i32, framerates: *mut *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFrameRateList(::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&iindex), ::core::mem::transmute(&dimensions), ::core::mem::transmute_copy(&listsize), ::core::mem::transmute_copy(&framerates)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCaps: GetCaps::<Identity, Impl, OFFSET>,
SetMode: SetMode::<Identity, Impl, OFFSET>,
GetMode: GetMode::<Identity, Impl, OFFSET>,
GetCurrentActualFrameRate: GetCurrentActualFrameRate::<Identity, Impl, OFFSET>,
GetMaxAvailableFrameRate: GetMaxAvailableFrameRate::<Identity, Impl, OFFSET>,
GetFrameRateList: GetFrameRateList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMVideoDecimationProperties_Impl: Sized {
fn QueryDecimationUsage(&self) -> ::windows_core::Result<DECIMATION_USAGE>;
fn SetDecimationUsage(&self, usage: DECIMATION_USAGE) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMVideoDecimationProperties {}
impl IAMVideoDecimationProperties_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoDecimationProperties_Impl, const OFFSET: isize>() -> IAMVideoDecimationProperties_Vtbl {
unsafe extern "system" fn QueryDecimationUsage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoDecimationProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpusage: *mut DECIMATION_USAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryDecimationUsage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpusage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDecimationUsage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoDecimationProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usage: DECIMATION_USAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDecimationUsage(::core::mem::transmute_copy(&usage)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryDecimationUsage: QueryDecimationUsage::<Identity, Impl, OFFSET>,
SetDecimationUsage: SetDecimationUsage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoDecimationProperties as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMVideoProcAmp_Impl: Sized {
fn GetRange(&self, property: i32, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflags: *mut i32) -> ::windows_core::Result<()>;
fn Set(&self, property: i32, lvalue: i32, flags: i32) -> ::windows_core::Result<()>;
fn Get(&self, property: i32, lvalue: *mut i32, flags: *mut i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMVideoProcAmp {}
impl IAMVideoProcAmp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoProcAmp_Impl, const OFFSET: isize>() -> IAMVideoProcAmp_Vtbl {
unsafe extern "system" fn GetRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRange(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflags)).into()
}
unsafe extern "system" fn Set<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, lvalue: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Set(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&lvalue), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn Get<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, property: i32, lvalue: *mut i32, flags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Get(::core::mem::transmute_copy(&property), ::core::mem::transmute_copy(&lvalue), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetRange: GetRange::<Identity, Impl, OFFSET>,
Set: Set::<Identity, Impl, OFFSET>,
Get: Get::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMVideoProcAmp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMWMBufferPass_Impl: Sized {
fn SetNotify(&self, pcallback: ::core::option::Option<&IAMWMBufferPassCallback>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMWMBufferPass {}
impl IAMWMBufferPass_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWMBufferPass_Impl, const OFFSET: isize>() -> IAMWMBufferPass_Vtbl {
unsafe extern "system" fn SetNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWMBufferPass_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcallback: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotify(::windows_core::from_raw_borrowed(&pcallback)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetNotify: SetNotify::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMWMBufferPass as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Media_WindowsMediaFormat\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Media_WindowsMediaFormat")]
pub trait IAMWMBufferPassCallback_Impl: Sized {
fn Notify(&self, pnssbuffer3: ::core::option::Option<&super::WindowsMediaFormat::INSSBuffer3>, ppin: ::core::option::Option<&IPin>, prtstart: *const i64, prtend: *const i64) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Media_WindowsMediaFormat")]
impl ::windows_core::RuntimeName for IAMWMBufferPassCallback {}
#[cfg(feature = "Win32_Media_WindowsMediaFormat")]
impl IAMWMBufferPassCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWMBufferPassCallback_Impl, const OFFSET: isize>() -> IAMWMBufferPassCallback_Vtbl {
unsafe extern "system" fn Notify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWMBufferPassCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnssbuffer3: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, prtstart: *const i64, prtend: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Notify(::windows_core::from_raw_borrowed(&pnssbuffer3), ::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&prtstart), ::core::mem::transmute_copy(&prtend)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Notify: Notify::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMWMBufferPassCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IAMWstDecoder_Impl: Sized {
fn GetDecoderLevel(&self, lplevel: *mut AM_WST_LEVEL) -> ::windows_core::Result<()>;
fn GetCurrentService(&self, lpservice: *mut AM_WST_SERVICE) -> ::windows_core::Result<()>;
fn GetServiceState(&self, lpstate: *mut AM_WST_STATE) -> ::windows_core::Result<()>;
fn SetServiceState(&self, state: AM_WST_STATE) -> ::windows_core::Result<()>;
fn GetOutputFormat(&self, lpbmih: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER) -> ::windows_core::Result<()>;
fn SetOutputFormat(&self, lpbmi: *mut super::super::Graphics::Gdi::BITMAPINFO) -> ::windows_core::Result<()>;
fn GetBackgroundColor(&self, pdwphyscolor: *mut u32) -> ::windows_core::Result<()>;
fn SetBackgroundColor(&self, dwphyscolor: u32) -> ::windows_core::Result<()>;
fn GetRedrawAlways(&self, lpboption: *mut i32) -> ::windows_core::Result<()>;
fn SetRedrawAlways(&self, boption: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetDrawBackgroundMode(&self, lpmode: *mut AM_WST_DRAWBGMODE) -> ::windows_core::Result<()>;
fn SetDrawBackgroundMode(&self, mode: AM_WST_DRAWBGMODE) -> ::windows_core::Result<()>;
fn SetAnswerMode(&self, banswer: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetAnswerMode(&self, pbanswer: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetHoldPage(&self, bholdpage: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetHoldPage(&self, pbholdpage: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetCurrentPage(&self, pwstpage: *mut AM_WST_PAGE) -> ::windows_core::Result<()>;
fn SetCurrentPage(&self, wstpage: &AM_WST_PAGE) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IAMWstDecoder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IAMWstDecoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>() -> IAMWstDecoder_Vtbl {
unsafe extern "system" fn GetDecoderLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplevel: *mut AM_WST_LEVEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDecoderLevel(::core::mem::transmute_copy(&lplevel)).into()
}
unsafe extern "system" fn GetCurrentService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpservice: *mut AM_WST_SERVICE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentService(::core::mem::transmute_copy(&lpservice)).into()
}
unsafe extern "system" fn GetServiceState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpstate: *mut AM_WST_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetServiceState(::core::mem::transmute_copy(&lpstate)).into()
}
unsafe extern "system" fn SetServiceState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, state: AM_WST_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetServiceState(::core::mem::transmute_copy(&state)).into()
}
unsafe extern "system" fn GetOutputFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbmih: *mut super::super::Graphics::Gdi::BITMAPINFOHEADER) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOutputFormat(::core::mem::transmute_copy(&lpbmih)).into()
}
unsafe extern "system" fn SetOutputFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpbmi: *mut super::super::Graphics::Gdi::BITMAPINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputFormat(::core::mem::transmute_copy(&lpbmi)).into()
}
unsafe extern "system" fn GetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwphyscolor: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBackgroundColor(::core::mem::transmute_copy(&pdwphyscolor)).into()
}
unsafe extern "system" fn SetBackgroundColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwphyscolor: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundColor(::core::mem::transmute_copy(&dwphyscolor)).into()
}
unsafe extern "system" fn GetRedrawAlways<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpboption: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRedrawAlways(::core::mem::transmute_copy(&lpboption)).into()
}
unsafe extern "system" fn SetRedrawAlways<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, boption: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRedrawAlways(::core::mem::transmute_copy(&boption)).into()
}
unsafe extern "system" fn GetDrawBackgroundMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpmode: *mut AM_WST_DRAWBGMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDrawBackgroundMode(::core::mem::transmute_copy(&lpmode)).into()
}
unsafe extern "system" fn SetDrawBackgroundMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: AM_WST_DRAWBGMODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDrawBackgroundMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn SetAnswerMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, banswer: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAnswerMode(::core::mem::transmute_copy(&banswer)).into()
}
unsafe extern "system" fn GetAnswerMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbanswer: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAnswerMode(::core::mem::transmute_copy(&pbanswer)).into()
}
unsafe extern "system" fn SetHoldPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bholdpage: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHoldPage(::core::mem::transmute_copy(&bholdpage)).into()
}
unsafe extern "system" fn GetHoldPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbholdpage: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetHoldPage(::core::mem::transmute_copy(&pbholdpage)).into()
}
unsafe extern "system" fn GetCurrentPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwstpage: *mut AM_WST_PAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentPage(::core::mem::transmute_copy(&pwstpage)).into()
}
unsafe extern "system" fn SetCurrentPage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMWstDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wstpage: AM_WST_PAGE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentPage(::core::mem::transmute(&wstpage)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDecoderLevel: GetDecoderLevel::<Identity, Impl, OFFSET>,
GetCurrentService: GetCurrentService::<Identity, Impl, OFFSET>,
GetServiceState: GetServiceState::<Identity, Impl, OFFSET>,
SetServiceState: SetServiceState::<Identity, Impl, OFFSET>,
GetOutputFormat: GetOutputFormat::<Identity, Impl, OFFSET>,
SetOutputFormat: SetOutputFormat::<Identity, Impl, OFFSET>,
GetBackgroundColor: GetBackgroundColor::<Identity, Impl, OFFSET>,
SetBackgroundColor: SetBackgroundColor::<Identity, Impl, OFFSET>,
GetRedrawAlways: GetRedrawAlways::<Identity, Impl, OFFSET>,
SetRedrawAlways: SetRedrawAlways::<Identity, Impl, OFFSET>,
GetDrawBackgroundMode: GetDrawBackgroundMode::<Identity, Impl, OFFSET>,
SetDrawBackgroundMode: SetDrawBackgroundMode::<Identity, Impl, OFFSET>,
SetAnswerMode: SetAnswerMode::<Identity, Impl, OFFSET>,
GetAnswerMode: GetAnswerMode::<Identity, Impl, OFFSET>,
SetHoldPage: SetHoldPage::<Identity, Impl, OFFSET>,
GetHoldPage: GetHoldPage::<Identity, Impl, OFFSET>,
GetCurrentPage: GetCurrentPage::<Identity, Impl, OFFSET>,
SetCurrentPage: SetCurrentPage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMWstDecoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAMovieSetup_Impl: Sized {
fn Register(&self) -> ::windows_core::Result<()>;
fn Unregister(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAMovieSetup {}
impl IAMovieSetup_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMovieSetup_Impl, const OFFSET: isize>() -> IAMovieSetup_Vtbl {
unsafe extern "system" fn Register<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMovieSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Register().into()
}
unsafe extern "system" fn Unregister<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAMovieSetup_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unregister().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Register: Register::<Identity, Impl, OFFSET>,
Unregister: Unregister::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAMovieSetup as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IAsyncReader_Impl: Sized {
fn RequestAllocator(&self, ppreferred: ::core::option::Option<&IMemAllocator>, pprops: *const ALLOCATOR_PROPERTIES) -> ::windows_core::Result<IMemAllocator>;
fn Request(&self, psample: ::core::option::Option<&IMediaSample>, dwuser: usize) -> ::windows_core::Result<()>;
fn WaitForNext(&self, dwtimeout: u32, ppsample: *mut ::core::option::Option<IMediaSample>, pdwuser: *mut usize) -> ::windows_core::Result<()>;
fn SyncReadAligned(&self, psample: ::core::option::Option<&IMediaSample>) -> ::windows_core::Result<()>;
fn SyncRead(&self, llposition: i64, llength: i32, pbuffer: *mut u8) -> ::windows_core::Result<()>;
fn Length(&self, ptotal: *mut i64, pavailable: *mut i64) -> ::windows_core::Result<()>;
fn BeginFlush(&self) -> ::windows_core::Result<()>;
fn EndFlush(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IAsyncReader {}
impl IAsyncReader_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>() -> IAsyncReader_Vtbl {
unsafe extern "system" fn RequestAllocator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppreferred: *mut ::core::ffi::c_void, pprops: *const ALLOCATOR_PROPERTIES, ppactual: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RequestAllocator(::windows_core::from_raw_borrowed(&ppreferred), ::core::mem::transmute_copy(&pprops)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppactual, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Request<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psample: *mut ::core::ffi::c_void, dwuser: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Request(::windows_core::from_raw_borrowed(&psample), ::core::mem::transmute_copy(&dwuser)).into()
}
unsafe extern "system" fn WaitForNext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwtimeout: u32, ppsample: *mut *mut ::core::ffi::c_void, pdwuser: *mut usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForNext(::core::mem::transmute_copy(&dwtimeout), ::core::mem::transmute_copy(&ppsample), ::core::mem::transmute_copy(&pdwuser)).into()
}
unsafe extern "system" fn SyncReadAligned<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psample: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SyncReadAligned(::windows_core::from_raw_borrowed(&psample)).into()
}
unsafe extern "system" fn SyncRead<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, llposition: i64, llength: i32, pbuffer: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SyncRead(::core::mem::transmute_copy(&llposition), ::core::mem::transmute_copy(&llength), ::core::mem::transmute_copy(&pbuffer)).into()
}
unsafe extern "system" fn Length<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptotal: *mut i64, pavailable: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Length(::core::mem::transmute_copy(&ptotal), ::core::mem::transmute_copy(&pavailable)).into()
}
unsafe extern "system" fn BeginFlush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BeginFlush().into()
}
unsafe extern "system" fn EndFlush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAsyncReader_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndFlush().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RequestAllocator: RequestAllocator::<Identity, Impl, OFFSET>,
Request: Request::<Identity, Impl, OFFSET>,
WaitForNext: WaitForNext::<Identity, Impl, OFFSET>,
SyncReadAligned: SyncReadAligned::<Identity, Impl, OFFSET>,
SyncRead: SyncRead::<Identity, Impl, OFFSET>,
Length: Length::<Identity, Impl, OFFSET>,
BeginFlush: BeginFlush::<Identity, Impl, OFFSET>,
EndFlush: EndFlush::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAsyncReader as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Media_Audio\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Media_Audio")]
pub trait IAudioData_Impl: Sized + IMemoryData_Impl {
fn GetFormat(&self, pwaveformatcurrent: *mut super::Audio::WAVEFORMATEX) -> ::windows_core::Result<()>;
fn SetFormat(&self, lpwaveformat: *const super::Audio::WAVEFORMATEX) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Media_Audio")]
impl ::windows_core::RuntimeName for IAudioData {}
#[cfg(feature = "Win32_Media_Audio")]
impl IAudioData_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioData_Impl, const OFFSET: isize>() -> IAudioData_Vtbl {
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwaveformatcurrent: *mut super::Audio::WAVEFORMATEX) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFormat(::core::mem::transmute_copy(&pwaveformatcurrent)).into()
}
unsafe extern "system" fn SetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwaveformat: *const super::Audio::WAVEFORMATEX) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFormat(::core::mem::transmute_copy(&lpwaveformat)).into()
}
Self {
base__: IMemoryData_Vtbl::new::<Identity, Impl, OFFSET>(),
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
SetFormat: SetFormat::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAudioData as ::windows_core::ComInterface>::IID || iid == &<IMemoryData as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Media_Audio\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Media_Audio")]
pub trait IAudioMediaStream_Impl: Sized + IMediaStream_Impl {
fn GetFormat(&self, pwaveformatcurrent: *mut super::Audio::WAVEFORMATEX) -> ::windows_core::Result<()>;
fn SetFormat(&self, lpwaveformat: *const super::Audio::WAVEFORMATEX) -> ::windows_core::Result<()>;
fn CreateSample(&self, paudiodata: ::core::option::Option<&IAudioData>, dwflags: u32) -> ::windows_core::Result<IAudioStreamSample>;
}
#[cfg(feature = "Win32_Media_Audio")]
impl ::windows_core::RuntimeName for IAudioMediaStream {}
#[cfg(feature = "Win32_Media_Audio")]
impl IAudioMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioMediaStream_Impl, const OFFSET: isize>() -> IAudioMediaStream_Vtbl {
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwaveformatcurrent: *mut super::Audio::WAVEFORMATEX) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFormat(::core::mem::transmute_copy(&pwaveformatcurrent)).into()
}
unsafe extern "system" fn SetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwaveformat: *const super::Audio::WAVEFORMATEX) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFormat(::core::mem::transmute_copy(&lpwaveformat)).into()
}
unsafe extern "system" fn CreateSample<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paudiodata: *mut ::core::ffi::c_void, dwflags: u32, ppsample: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateSample(::windows_core::from_raw_borrowed(&paudiodata), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsample, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IMediaStream_Vtbl::new::<Identity, Impl, OFFSET>(),
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
SetFormat: SetFormat::<Identity, Impl, OFFSET>,
CreateSample: CreateSample::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAudioMediaStream as ::windows_core::ComInterface>::IID || iid == &<IMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IAudioStreamSample_Impl: Sized + IStreamSample_Impl {
fn GetAudioData(&self) -> ::windows_core::Result<IAudioData>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IAudioStreamSample {}
#[cfg(feature = "Win32_Foundation")]
impl IAudioStreamSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioStreamSample_Impl, const OFFSET: isize>() -> IAudioStreamSample_Vtbl {
unsafe extern "system" fn GetAudioData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IAudioStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppaudio: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAudioData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppaudio, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IStreamSample_Vtbl::new::<Identity, Impl, OFFSET>(), GetAudioData: GetAudioData::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IAudioStreamSample as ::windows_core::ComInterface>::IID || iid == &<IStreamSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_AUX_Impl: Sized {
fn QueryCapabilities(&self) -> ::windows_core::Result<u32>;
fn EnumCapability(&self, dwindex: u32, dwinputid: *mut u32, pconnectortype: *mut ::windows_core::GUID, conntypenum: *mut u32, numvideostds: *mut u32, analogstds: *mut u64) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_AUX {}
impl IBDA_AUX_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AUX_Impl, const OFFSET: isize>() -> IBDA_AUX_Vtbl {
unsafe extern "system" fn QueryCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AUX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumauxinputsbstr: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwnumauxinputsbstr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumCapability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AUX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwindex: u32, dwinputid: *mut u32, pconnectortype: *mut ::windows_core::GUID, conntypenum: *mut u32, numvideostds: *mut u32, analogstds: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumCapability(::core::mem::transmute_copy(&dwindex), ::core::mem::transmute_copy(&dwinputid), ::core::mem::transmute_copy(&pconnectortype), ::core::mem::transmute_copy(&conntypenum), ::core::mem::transmute_copy(&numvideostds), ::core::mem::transmute_copy(&analogstds)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryCapabilities: QueryCapabilities::<Identity, Impl, OFFSET>,
EnumCapability: EnumCapability::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_AUX as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_AutoDemodulate_Impl: Sized {
fn put_AutoDemodulate(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_AutoDemodulate {}
impl IBDA_AutoDemodulate_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulate_Impl, const OFFSET: isize>() -> IBDA_AutoDemodulate_Vtbl {
unsafe extern "system" fn put_AutoDemodulate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulate_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_AutoDemodulate().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), put_AutoDemodulate: put_AutoDemodulate::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_AutoDemodulate as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_AutoDemodulateEx_Impl: Sized + IBDA_AutoDemodulate_Impl {
fn get_SupportedDeviceNodeTypes(&self, ulcdevicenodetypesmax: u32, pulcdevicenodetypes: *mut u32, pguiddevicenodetypes: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn get_SupportedVideoFormats(&self, pulamtunermodetype: *mut u32, pulanalogvideostandard: *mut u32) -> ::windows_core::Result<()>;
fn get_AuxInputCount(&self, pulcompositecount: *mut u32, pulsvideocount: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_AutoDemodulateEx {}
impl IBDA_AutoDemodulateEx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulateEx_Impl, const OFFSET: isize>() -> IBDA_AutoDemodulateEx_Vtbl {
unsafe extern "system" fn get_SupportedDeviceNodeTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulateEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcdevicenodetypesmax: u32, pulcdevicenodetypes: *mut u32, pguiddevicenodetypes: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_SupportedDeviceNodeTypes(::core::mem::transmute_copy(&ulcdevicenodetypesmax), ::core::mem::transmute_copy(&pulcdevicenodetypes), ::core::mem::transmute_copy(&pguiddevicenodetypes)).into()
}
unsafe extern "system" fn get_SupportedVideoFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulateEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulamtunermodetype: *mut u32, pulanalogvideostandard: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_SupportedVideoFormats(::core::mem::transmute_copy(&pulamtunermodetype), ::core::mem::transmute_copy(&pulanalogvideostandard)).into()
}
unsafe extern "system" fn get_AuxInputCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_AutoDemodulateEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcompositecount: *mut u32, pulsvideocount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_AuxInputCount(::core::mem::transmute_copy(&pulcompositecount), ::core::mem::transmute_copy(&pulsvideocount)).into()
}
Self {
base__: IBDA_AutoDemodulate_Vtbl::new::<Identity, Impl, OFFSET>(),
get_SupportedDeviceNodeTypes: get_SupportedDeviceNodeTypes::<Identity, Impl, OFFSET>,
get_SupportedVideoFormats: get_SupportedVideoFormats::<Identity, Impl, OFFSET>,
get_AuxInputCount: get_AuxInputCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_AutoDemodulateEx as ::windows_core::ComInterface>::IID || iid == &<IBDA_AutoDemodulate as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_ConditionalAccess_Impl: Sized {
fn get_SmartCardStatus(&self, pcardstatus: *mut SmartCardStatusType, pcardassociation: *mut SmartCardAssociationType, pbstrcarderror: *mut ::windows_core::BSTR, pfooblocked: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::Result<()>;
fn get_SmartCardInfo(&self, pbstrcardname: *mut ::windows_core::BSTR, pbstrcardmanufacturer: *mut ::windows_core::BSTR, pfdaylightsavings: *mut super::super::Foundation::VARIANT_BOOL, pbyratingregion: *mut u8, pltimezoneoffsetminutes: *mut i32, pbstrlanguage: *mut ::windows_core::BSTR, pealocationcode: *mut EALocationCodeType) -> ::windows_core::Result<()>;
fn get_SmartCardApplications(&self, pulcapplications: *mut u32, ulcapplicationsmax: u32, rgapplications: *mut SmartCardApplication) -> ::windows_core::Result<()>;
fn get_Entitlement(&self, usvirtualchannel: u16) -> ::windows_core::Result<EntitlementType>;
fn TuneByChannel(&self, usvirtualchannel: u16) -> ::windows_core::Result<()>;
fn SetProgram(&self, usprogramnumber: u16) -> ::windows_core::Result<()>;
fn AddProgram(&self, usprogramnumber: u16) -> ::windows_core::Result<()>;
fn RemoveProgram(&self, usprogramnumber: u16) -> ::windows_core::Result<()>;
fn GetModuleUI(&self, bydialognumber: u8) -> ::windows_core::Result<::windows_core::BSTR>;
fn InformUIClosed(&self, bydialognumber: u8, closereason: UICloseReasonType) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_ConditionalAccess {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_ConditionalAccess_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>() -> IBDA_ConditionalAccess_Vtbl {
unsafe extern "system" fn get_SmartCardStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcardstatus: *mut SmartCardStatusType, pcardassociation: *mut SmartCardAssociationType, pbstrcarderror: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, pfooblocked: *mut super::super::Foundation::VARIANT_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_SmartCardStatus(::core::mem::transmute_copy(&pcardstatus), ::core::mem::transmute_copy(&pcardassociation), ::core::mem::transmute_copy(&pbstrcarderror), ::core::mem::transmute_copy(&pfooblocked)).into()
}
unsafe extern "system" fn get_SmartCardInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrcardname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, pbstrcardmanufacturer: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, pfdaylightsavings: *mut super::super::Foundation::VARIANT_BOOL, pbyratingregion: *mut u8, pltimezoneoffsetminutes: *mut i32, pbstrlanguage: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, pealocationcode: *mut EALocationCodeType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_SmartCardInfo(::core::mem::transmute_copy(&pbstrcardname), ::core::mem::transmute_copy(&pbstrcardmanufacturer), ::core::mem::transmute_copy(&pfdaylightsavings), ::core::mem::transmute_copy(&pbyratingregion), ::core::mem::transmute_copy(&pltimezoneoffsetminutes), ::core::mem::transmute_copy(&pbstrlanguage), ::core::mem::transmute_copy(&pealocationcode)).into()
}
unsafe extern "system" fn get_SmartCardApplications<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcapplications: *mut u32, ulcapplicationsmax: u32, rgapplications: *mut SmartCardApplication) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_SmartCardApplications(::core::mem::transmute_copy(&pulcapplications), ::core::mem::transmute_copy(&ulcapplicationsmax), ::core::mem::transmute_copy(&rgapplications)).into()
}
unsafe extern "system" fn get_Entitlement<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usvirtualchannel: u16, pentitlement: *mut EntitlementType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.get_Entitlement(::core::mem::transmute_copy(&usvirtualchannel)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pentitlement, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn TuneByChannel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usvirtualchannel: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TuneByChannel(::core::mem::transmute_copy(&usvirtualchannel)).into()
}
unsafe extern "system" fn SetProgram<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usprogramnumber: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProgram(::core::mem::transmute_copy(&usprogramnumber)).into()
}
unsafe extern "system" fn AddProgram<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usprogramnumber: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddProgram(::core::mem::transmute_copy(&usprogramnumber)).into()
}
unsafe extern "system" fn RemoveProgram<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usprogramnumber: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveProgram(::core::mem::transmute_copy(&usprogramnumber)).into()
}
unsafe extern "system" fn GetModuleUI<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bydialognumber: u8, pbstrurl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetModuleUI(::core::mem::transmute_copy(&bydialognumber)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrurl, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn InformUIClosed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bydialognumber: u8, closereason: UICloseReasonType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InformUIClosed(::core::mem::transmute_copy(&bydialognumber), ::core::mem::transmute_copy(&closereason)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_SmartCardStatus: get_SmartCardStatus::<Identity, Impl, OFFSET>,
get_SmartCardInfo: get_SmartCardInfo::<Identity, Impl, OFFSET>,
get_SmartCardApplications: get_SmartCardApplications::<Identity, Impl, OFFSET>,
get_Entitlement: get_Entitlement::<Identity, Impl, OFFSET>,
TuneByChannel: TuneByChannel::<Identity, Impl, OFFSET>,
SetProgram: SetProgram::<Identity, Impl, OFFSET>,
AddProgram: AddProgram::<Identity, Impl, OFFSET>,
RemoveProgram: RemoveProgram::<Identity, Impl, OFFSET>,
GetModuleUI: GetModuleUI::<Identity, Impl, OFFSET>,
InformUIClosed: InformUIClosed::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_ConditionalAccess as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_ConditionalAccessEx_Impl: Sized {
fn CheckEntitlementToken(&self, uldialogrequest: u32, bstrlanguage: &::windows_core::BSTR, requesttype: BDA_CONDITIONALACCESS_REQUESTTYPE, ulcbentitlementtokenlen: u32, pbentitlementtoken: *const u8) -> ::windows_core::Result<u32>;
fn SetCaptureToken(&self, ulcbcapturetokenlen: u32, pbcapturetoken: *const u8) -> ::windows_core::Result<()>;
fn OpenBroadcastMmi(&self, uldialogrequest: u32, bstrlanguage: &::windows_core::BSTR, eventid: u32) -> ::windows_core::Result<()>;
fn CloseMmiDialog(&self, uldialogrequest: u32, bstrlanguage: &::windows_core::BSTR, uldialognumber: u32, reasoncode: BDA_CONDITIONALACCESS_MMICLOSEREASON) -> ::windows_core::Result<u32>;
fn CreateDialogRequestNumber(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBDA_ConditionalAccessEx {}
impl IBDA_ConditionalAccessEx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>() -> IBDA_ConditionalAccessEx_Vtbl {
unsafe extern "system" fn CheckEntitlementToken<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldialogrequest: u32, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, requesttype: BDA_CONDITIONALACCESS_REQUESTTYPE, ulcbentitlementtokenlen: u32, pbentitlementtoken: *const u8, puldescramblestatus: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CheckEntitlementToken(::core::mem::transmute_copy(&uldialogrequest), ::core::mem::transmute(&bstrlanguage), ::core::mem::transmute_copy(&requesttype), ::core::mem::transmute_copy(&ulcbentitlementtokenlen), ::core::mem::transmute_copy(&pbentitlementtoken)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puldescramblestatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCaptureToken<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcbcapturetokenlen: u32, pbcapturetoken: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCaptureToken(::core::mem::transmute_copy(&ulcbcapturetokenlen), ::core::mem::transmute_copy(&pbcapturetoken)).into()
}
unsafe extern "system" fn OpenBroadcastMmi<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldialogrequest: u32, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, eventid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OpenBroadcastMmi(::core::mem::transmute_copy(&uldialogrequest), ::core::mem::transmute(&bstrlanguage), ::core::mem::transmute_copy(&eventid)).into()
}
unsafe extern "system" fn CloseMmiDialog<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldialogrequest: u32, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, uldialognumber: u32, reasoncode: BDA_CONDITIONALACCESS_MMICLOSEREASON, pulsessionresult: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CloseMmiDialog(::core::mem::transmute_copy(&uldialogrequest), ::core::mem::transmute(&bstrlanguage), ::core::mem::transmute_copy(&uldialognumber), ::core::mem::transmute_copy(&reasoncode)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulsessionresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateDialogRequestNumber<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ConditionalAccessEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puldialogrequestnumber: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateDialogRequestNumber() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puldialogrequestnumber, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CheckEntitlementToken: CheckEntitlementToken::<Identity, Impl, OFFSET>,
SetCaptureToken: SetCaptureToken::<Identity, Impl, OFFSET>,
OpenBroadcastMmi: OpenBroadcastMmi::<Identity, Impl, OFFSET>,
CloseMmiDialog: CloseMmiDialog::<Identity, Impl, OFFSET>,
CreateDialogRequestNumber: CreateDialogRequestNumber::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_ConditionalAccessEx as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DRIDRMService_Impl: Sized {
fn SetDRM(&self, bstrnewdrm: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn GetDRMStatus(&self, pbstrdrmuuidlist: *mut ::windows_core::BSTR, drmuuid: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetPairingStatus(&self, penumpairingstatus: *mut BDA_DrmPairingError) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DRIDRMService {}
impl IBDA_DRIDRMService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIDRMService_Impl, const OFFSET: isize>() -> IBDA_DRIDRMService_Vtbl {
unsafe extern "system" fn SetDRM<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIDRMService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrnewdrm: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDRM(::core::mem::transmute(&bstrnewdrm)).into()
}
unsafe extern "system" fn GetDRMStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIDRMService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrdrmuuidlist: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, drmuuid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDRMStatus(::core::mem::transmute_copy(&pbstrdrmuuidlist), ::core::mem::transmute_copy(&drmuuid)).into()
}
unsafe extern "system" fn GetPairingStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIDRMService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penumpairingstatus: *mut BDA_DrmPairingError) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPairingStatus(::core::mem::transmute_copy(&penumpairingstatus)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDRM: SetDRM::<Identity, Impl, OFFSET>,
GetDRMStatus: GetDRMStatus::<Identity, Impl, OFFSET>,
GetPairingStatus: GetPairingStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DRIDRMService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DRIWMDRMSession_Impl: Sized {
fn AcknowledgeLicense(&self, hrlicenseack: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn ProcessLicenseChallenge(&self, dwcblicensemessage: u32, pblicensemessage: *const u8, pdwcblicenseresponse: *mut u32, ppblicenseresponse: *mut *mut u8) -> ::windows_core::Result<()>;
fn ProcessRegistrationChallenge(&self, dwcbregistrationmessage: u32, pbregistrationmessage: *const u8, pdwcbregistrationresponse: *mut u32, ppbregistrationresponse: *mut *mut u8) -> ::windows_core::Result<()>;
fn SetRevInfo(&self, dwrevinfolen: u32, pbrevinfo: *const u8, pdwresponse: *mut u32) -> ::windows_core::Result<()>;
fn SetCrl(&self, dwcrllen: u32, pbcrllen: *const u8, pdwresponse: *mut u32) -> ::windows_core::Result<()>;
fn GetHMSAssociationData(&self) -> ::windows_core::Result<()>;
fn GetLastCardeaError(&self, pdwerror: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DRIWMDRMSession {}
impl IBDA_DRIWMDRMSession_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>() -> IBDA_DRIWMDRMSession_Vtbl {
unsafe extern "system" fn AcknowledgeLicense<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hrlicenseack: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AcknowledgeLicense(::core::mem::transmute_copy(&hrlicenseack)).into()
}
unsafe extern "system" fn ProcessLicenseChallenge<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcblicensemessage: u32, pblicensemessage: *const u8, pdwcblicenseresponse: *mut u32, ppblicenseresponse: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProcessLicenseChallenge(::core::mem::transmute_copy(&dwcblicensemessage), ::core::mem::transmute_copy(&pblicensemessage), ::core::mem::transmute_copy(&pdwcblicenseresponse), ::core::mem::transmute_copy(&ppblicenseresponse)).into()
}
unsafe extern "system" fn ProcessRegistrationChallenge<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcbregistrationmessage: u32, pbregistrationmessage: *const u8, pdwcbregistrationresponse: *mut u32, ppbregistrationresponse: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ProcessRegistrationChallenge(::core::mem::transmute_copy(&dwcbregistrationmessage), ::core::mem::transmute_copy(&pbregistrationmessage), ::core::mem::transmute_copy(&pdwcbregistrationresponse), ::core::mem::transmute_copy(&ppbregistrationresponse)).into()
}
unsafe extern "system" fn SetRevInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrevinfolen: u32, pbrevinfo: *const u8, pdwresponse: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRevInfo(::core::mem::transmute_copy(&dwrevinfolen), ::core::mem::transmute_copy(&pbrevinfo), ::core::mem::transmute_copy(&pdwresponse)).into()
}
unsafe extern "system" fn SetCrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcrllen: u32, pbcrllen: *const u8, pdwresponse: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCrl(::core::mem::transmute_copy(&dwcrllen), ::core::mem::transmute_copy(&pbcrllen), ::core::mem::transmute_copy(&pdwresponse)).into()
}
unsafe extern "system" fn GetHMSAssociationData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetHMSAssociationData().into()
}
unsafe extern "system" fn GetLastCardeaError<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRIWMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwerror: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLastCardeaError(::core::mem::transmute_copy(&pdwerror)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AcknowledgeLicense: AcknowledgeLicense::<Identity, Impl, OFFSET>,
ProcessLicenseChallenge: ProcessLicenseChallenge::<Identity, Impl, OFFSET>,
ProcessRegistrationChallenge: ProcessRegistrationChallenge::<Identity, Impl, OFFSET>,
SetRevInfo: SetRevInfo::<Identity, Impl, OFFSET>,
SetCrl: SetCrl::<Identity, Impl, OFFSET>,
GetHMSAssociationData: GetHMSAssociationData::<Identity, Impl, OFFSET>,
GetLastCardeaError: GetLastCardeaError::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DRIWMDRMSession as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_DRM_Impl: Sized {
fn GetDRMPairingStatus(&self, pdwstatus: *mut u32, pherror: *mut ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn PerformDRMPairing(&self, fsync: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_DRM {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_DRM_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRM_Impl, const OFFSET: isize>() -> IBDA_DRM_Vtbl {
unsafe extern "system" fn GetDRMPairingStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRM_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwstatus: *mut u32, pherror: *mut ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDRMPairingStatus(::core::mem::transmute_copy(&pdwstatus), ::core::mem::transmute_copy(&pherror)).into()
}
unsafe extern "system" fn PerformDRMPairing<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRM_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fsync: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PerformDRMPairing(::core::mem::transmute_copy(&fsync)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDRMPairingStatus: GetDRMPairingStatus::<Identity, Impl, OFFSET>,
PerformDRMPairing: PerformDRMPairing::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DRM as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DRMService_Impl: Sized {
fn SetDRM(&self, puuidnewdrm: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDRMStatus(&self, pbstrdrmuuidlist: *mut ::windows_core::BSTR, drmuuid: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DRMService {}
impl IBDA_DRMService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRMService_Impl, const OFFSET: isize>() -> IBDA_DRMService_Vtbl {
unsafe extern "system" fn SetDRM<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRMService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puuidnewdrm: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDRM(::core::mem::transmute_copy(&puuidnewdrm)).into()
}
unsafe extern "system" fn GetDRMStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DRMService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrdrmuuidlist: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, drmuuid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDRMStatus(::core::mem::transmute_copy(&pbstrdrmuuidlist), ::core::mem::transmute_copy(&drmuuid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDRM: SetDRM::<Identity, Impl, OFFSET>,
GetDRMStatus: GetDRMStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DRMService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DeviceControl_Impl: Sized {
fn StartChanges(&self) -> ::windows_core::Result<()>;
fn CheckChanges(&self) -> ::windows_core::Result<()>;
fn CommitChanges(&self) -> ::windows_core::Result<()>;
fn GetChangeState(&self, pstate: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DeviceControl {}
impl IBDA_DeviceControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DeviceControl_Impl, const OFFSET: isize>() -> IBDA_DeviceControl_Vtbl {
unsafe extern "system" fn StartChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DeviceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartChanges().into()
}
unsafe extern "system" fn CheckChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DeviceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CheckChanges().into()
}
unsafe extern "system" fn CommitChanges<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DeviceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CommitChanges().into()
}
unsafe extern "system" fn GetChangeState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DeviceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetChangeState(::core::mem::transmute_copy(&pstate)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartChanges: StartChanges::<Identity, Impl, OFFSET>,
CheckChanges: CheckChanges::<Identity, Impl, OFFSET>,
CommitChanges: CommitChanges::<Identity, Impl, OFFSET>,
GetChangeState: GetChangeState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DeviceControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IBDA_DiagnosticProperties_Impl: Sized + super::super::System::Com::StructuredStorage::IPropertyBag_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IBDA_DiagnosticProperties {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IBDA_DiagnosticProperties_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiagnosticProperties_Impl, const OFFSET: isize>() -> IBDA_DiagnosticProperties_Vtbl {
Self { base__: super::super::System::Com::StructuredStorage::IPropertyBag_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DiagnosticProperties as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::StructuredStorage::IPropertyBag as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DigitalDemodulator_Impl: Sized {
fn SetModulationType(&self, pmodulationtype: *const ModulationType) -> ::windows_core::Result<()>;
fn ModulationType(&self, pmodulationtype: *mut ModulationType) -> ::windows_core::Result<()>;
fn SetInnerFECMethod(&self, pfecmethod: *const FECMethod) -> ::windows_core::Result<()>;
fn InnerFECMethod(&self, pfecmethod: *mut FECMethod) -> ::windows_core::Result<()>;
fn SetInnerFECRate(&self, pfecrate: *const BinaryConvolutionCodeRate) -> ::windows_core::Result<()>;
fn InnerFECRate(&self, pfecrate: *mut BinaryConvolutionCodeRate) -> ::windows_core::Result<()>;
fn SetOuterFECMethod(&self, pfecmethod: *const FECMethod) -> ::windows_core::Result<()>;
fn OuterFECMethod(&self, pfecmethod: *mut FECMethod) -> ::windows_core::Result<()>;
fn SetOuterFECRate(&self, pfecrate: *const BinaryConvolutionCodeRate) -> ::windows_core::Result<()>;
fn OuterFECRate(&self, pfecrate: *mut BinaryConvolutionCodeRate) -> ::windows_core::Result<()>;
fn SetSymbolRate(&self, psymbolrate: *const u32) -> ::windows_core::Result<()>;
fn SymbolRate(&self, psymbolrate: *mut u32) -> ::windows_core::Result<()>;
fn SetSpectralInversion(&self, pspectralinversion: *const SpectralInversion) -> ::windows_core::Result<()>;
fn SpectralInversion(&self, pspectralinversion: *mut SpectralInversion) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DigitalDemodulator {}
impl IBDA_DigitalDemodulator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>() -> IBDA_DigitalDemodulator_Vtbl {
unsafe extern "system" fn SetModulationType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmodulationtype: *const ModulationType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetModulationType(::core::mem::transmute_copy(&pmodulationtype)).into()
}
unsafe extern "system" fn ModulationType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmodulationtype: *mut ModulationType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ModulationType(::core::mem::transmute_copy(&pmodulationtype)).into()
}
unsafe extern "system" fn SetInnerFECMethod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecmethod: *const FECMethod) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInnerFECMethod(::core::mem::transmute_copy(&pfecmethod)).into()
}
unsafe extern "system" fn InnerFECMethod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecmethod: *mut FECMethod) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InnerFECMethod(::core::mem::transmute_copy(&pfecmethod)).into()
}
unsafe extern "system" fn SetInnerFECRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecrate: *const BinaryConvolutionCodeRate) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInnerFECRate(::core::mem::transmute_copy(&pfecrate)).into()
}
unsafe extern "system" fn InnerFECRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecrate: *mut BinaryConvolutionCodeRate) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InnerFECRate(::core::mem::transmute_copy(&pfecrate)).into()
}
unsafe extern "system" fn SetOuterFECMethod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecmethod: *const FECMethod) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOuterFECMethod(::core::mem::transmute_copy(&pfecmethod)).into()
}
unsafe extern "system" fn OuterFECMethod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecmethod: *mut FECMethod) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OuterFECMethod(::core::mem::transmute_copy(&pfecmethod)).into()
}
unsafe extern "system" fn SetOuterFECRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecrate: *const BinaryConvolutionCodeRate) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOuterFECRate(::core::mem::transmute_copy(&pfecrate)).into()
}
unsafe extern "system" fn OuterFECRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfecrate: *mut BinaryConvolutionCodeRate) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OuterFECRate(::core::mem::transmute_copy(&pfecrate)).into()
}
unsafe extern "system" fn SetSymbolRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psymbolrate: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSymbolRate(::core::mem::transmute_copy(&psymbolrate)).into()
}
unsafe extern "system" fn SymbolRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psymbolrate: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SymbolRate(::core::mem::transmute_copy(&psymbolrate)).into()
}
unsafe extern "system" fn SetSpectralInversion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pspectralinversion: *const SpectralInversion) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSpectralInversion(::core::mem::transmute_copy(&pspectralinversion)).into()
}
unsafe extern "system" fn SpectralInversion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pspectralinversion: *mut SpectralInversion) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SpectralInversion(::core::mem::transmute_copy(&pspectralinversion)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetModulationType: SetModulationType::<Identity, Impl, OFFSET>,
ModulationType: ModulationType::<Identity, Impl, OFFSET>,
SetInnerFECMethod: SetInnerFECMethod::<Identity, Impl, OFFSET>,
InnerFECMethod: InnerFECMethod::<Identity, Impl, OFFSET>,
SetInnerFECRate: SetInnerFECRate::<Identity, Impl, OFFSET>,
InnerFECRate: InnerFECRate::<Identity, Impl, OFFSET>,
SetOuterFECMethod: SetOuterFECMethod::<Identity, Impl, OFFSET>,
OuterFECMethod: OuterFECMethod::<Identity, Impl, OFFSET>,
SetOuterFECRate: SetOuterFECRate::<Identity, Impl, OFFSET>,
OuterFECRate: OuterFECRate::<Identity, Impl, OFFSET>,
SetSymbolRate: SetSymbolRate::<Identity, Impl, OFFSET>,
SymbolRate: SymbolRate::<Identity, Impl, OFFSET>,
SetSpectralInversion: SetSpectralInversion::<Identity, Impl, OFFSET>,
SpectralInversion: SpectralInversion::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DigitalDemodulator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DigitalDemodulator2_Impl: Sized + IBDA_DigitalDemodulator_Impl {
fn SetGuardInterval(&self, pguardinterval: *const GuardInterval) -> ::windows_core::Result<()>;
fn GuardInterval(&self, pguardinterval: *mut GuardInterval) -> ::windows_core::Result<()>;
fn SetTransmissionMode(&self, ptransmissionmode: *const TransmissionMode) -> ::windows_core::Result<()>;
fn TransmissionMode(&self, ptransmissionmode: *mut TransmissionMode) -> ::windows_core::Result<()>;
fn SetRollOff(&self, prolloff: *const RollOff) -> ::windows_core::Result<()>;
fn RollOff(&self, prolloff: *mut RollOff) -> ::windows_core::Result<()>;
fn SetPilot(&self, ppilot: *const Pilot) -> ::windows_core::Result<()>;
fn Pilot(&self, ppilot: *mut Pilot) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DigitalDemodulator2 {}
impl IBDA_DigitalDemodulator2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>() -> IBDA_DigitalDemodulator2_Vtbl {
unsafe extern "system" fn SetGuardInterval<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguardinterval: *const GuardInterval) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetGuardInterval(::core::mem::transmute_copy(&pguardinterval)).into()
}
unsafe extern "system" fn GuardInterval<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguardinterval: *mut GuardInterval) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GuardInterval(::core::mem::transmute_copy(&pguardinterval)).into()
}
unsafe extern "system" fn SetTransmissionMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptransmissionmode: *const TransmissionMode) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTransmissionMode(::core::mem::transmute_copy(&ptransmissionmode)).into()
}
unsafe extern "system" fn TransmissionMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptransmissionmode: *mut TransmissionMode) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TransmissionMode(::core::mem::transmute_copy(&ptransmissionmode)).into()
}
unsafe extern "system" fn SetRollOff<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prolloff: *const RollOff) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRollOff(::core::mem::transmute_copy(&prolloff)).into()
}
unsafe extern "system" fn RollOff<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prolloff: *mut RollOff) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RollOff(::core::mem::transmute_copy(&prolloff)).into()
}
unsafe extern "system" fn SetPilot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppilot: *const Pilot) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPilot(::core::mem::transmute_copy(&ppilot)).into()
}
unsafe extern "system" fn Pilot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppilot: *mut Pilot) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Pilot(::core::mem::transmute_copy(&ppilot)).into()
}
Self {
base__: IBDA_DigitalDemodulator_Vtbl::new::<Identity, Impl, OFFSET>(),
SetGuardInterval: SetGuardInterval::<Identity, Impl, OFFSET>,
GuardInterval: GuardInterval::<Identity, Impl, OFFSET>,
SetTransmissionMode: SetTransmissionMode::<Identity, Impl, OFFSET>,
TransmissionMode: TransmissionMode::<Identity, Impl, OFFSET>,
SetRollOff: SetRollOff::<Identity, Impl, OFFSET>,
RollOff: RollOff::<Identity, Impl, OFFSET>,
SetPilot: SetPilot::<Identity, Impl, OFFSET>,
Pilot: Pilot::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DigitalDemodulator2 as ::windows_core::ComInterface>::IID || iid == &<IBDA_DigitalDemodulator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_DigitalDemodulator3_Impl: Sized + IBDA_DigitalDemodulator2_Impl {
fn SetSignalTimeouts(&self, psignaltimeouts: *const BDA_SIGNAL_TIMEOUTS) -> ::windows_core::Result<()>;
fn SignalTimeouts(&self, psignaltimeouts: *mut BDA_SIGNAL_TIMEOUTS) -> ::windows_core::Result<()>;
fn SetPLPNumber(&self, pplpnumber: *const u32) -> ::windows_core::Result<()>;
fn PLPNumber(&self, pplpnumber: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_DigitalDemodulator3 {}
impl IBDA_DigitalDemodulator3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator3_Impl, const OFFSET: isize>() -> IBDA_DigitalDemodulator3_Vtbl {
unsafe extern "system" fn SetSignalTimeouts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psignaltimeouts: *const BDA_SIGNAL_TIMEOUTS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSignalTimeouts(::core::mem::transmute_copy(&psignaltimeouts)).into()
}
unsafe extern "system" fn SignalTimeouts<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psignaltimeouts: *mut BDA_SIGNAL_TIMEOUTS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SignalTimeouts(::core::mem::transmute_copy(&psignaltimeouts)).into()
}
unsafe extern "system" fn SetPLPNumber<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pplpnumber: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPLPNumber(::core::mem::transmute_copy(&pplpnumber)).into()
}
unsafe extern "system" fn PLPNumber<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DigitalDemodulator3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pplpnumber: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PLPNumber(::core::mem::transmute_copy(&pplpnumber)).into()
}
Self {
base__: IBDA_DigitalDemodulator2_Vtbl::new::<Identity, Impl, OFFSET>(),
SetSignalTimeouts: SetSignalTimeouts::<Identity, Impl, OFFSET>,
SignalTimeouts: SignalTimeouts::<Identity, Impl, OFFSET>,
SetPLPNumber: SetPLPNumber::<Identity, Impl, OFFSET>,
PLPNumber: PLPNumber::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DigitalDemodulator3 as ::windows_core::ComInterface>::IID || iid == &<IBDA_DigitalDemodulator as ::windows_core::ComInterface>::IID || iid == &<IBDA_DigitalDemodulator2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_DiseqCommand_Impl: Sized {
fn SetEnableDiseqCommands(&self, benable: super::super::Foundation::BOOLEAN) -> ::windows_core::Result<()>;
fn SetDiseqLNBSource(&self, ullnbsource: u32) -> ::windows_core::Result<()>;
fn SetDiseqUseToneBurst(&self, busetoneburst: super::super::Foundation::BOOLEAN) -> ::windows_core::Result<()>;
fn SetDiseqRepeats(&self, ulrepeats: u32) -> ::windows_core::Result<()>;
fn put_DiseqSendCommand(&self, ulrequestid: u32, ulcbcommandlen: u32, pbcommand: *const u8) -> ::windows_core::Result<()>;
fn get_DiseqResponse(&self, ulrequestid: u32, pulcbresponselen: *mut u32, pbresponse: *mut u8) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_DiseqCommand {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_DiseqCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>() -> IBDA_DiseqCommand_Vtbl {
unsafe extern "system" fn SetEnableDiseqCommands<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, benable: super::super::Foundation::BOOLEAN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnableDiseqCommands(::core::mem::transmute_copy(&benable)).into()
}
unsafe extern "system" fn SetDiseqLNBSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullnbsource: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDiseqLNBSource(::core::mem::transmute_copy(&ullnbsource)).into()
}
unsafe extern "system" fn SetDiseqUseToneBurst<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, busetoneburst: super::super::Foundation::BOOLEAN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDiseqUseToneBurst(::core::mem::transmute_copy(&busetoneburst)).into()
}
unsafe extern "system" fn SetDiseqRepeats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrepeats: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDiseqRepeats(::core::mem::transmute_copy(&ulrepeats)).into()
}
unsafe extern "system" fn put_DiseqSendCommand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrequestid: u32, ulcbcommandlen: u32, pbcommand: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_DiseqSendCommand(::core::mem::transmute_copy(&ulrequestid), ::core::mem::transmute_copy(&ulcbcommandlen), ::core::mem::transmute_copy(&pbcommand)).into()
}
unsafe extern "system" fn get_DiseqResponse<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_DiseqCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrequestid: u32, pulcbresponselen: *mut u32, pbresponse: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_DiseqResponse(::core::mem::transmute_copy(&ulrequestid), ::core::mem::transmute_copy(&pulcbresponselen), ::core::mem::transmute_copy(&pbresponse)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetEnableDiseqCommands: SetEnableDiseqCommands::<Identity, Impl, OFFSET>,
SetDiseqLNBSource: SetDiseqLNBSource::<Identity, Impl, OFFSET>,
SetDiseqUseToneBurst: SetDiseqUseToneBurst::<Identity, Impl, OFFSET>,
SetDiseqRepeats: SetDiseqRepeats::<Identity, Impl, OFFSET>,
put_DiseqSendCommand: put_DiseqSendCommand::<Identity, Impl, OFFSET>,
get_DiseqResponse: get_DiseqResponse::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_DiseqCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_EasMessage_Impl: Sized {
fn get_EasMessage(&self, uleventid: u32, ppeasobject: *mut ::core::option::Option<::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_EasMessage {}
impl IBDA_EasMessage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EasMessage_Impl, const OFFSET: isize>() -> IBDA_EasMessage_Vtbl {
unsafe extern "system" fn get_EasMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EasMessage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uleventid: u32, ppeasobject: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_EasMessage(::core::mem::transmute_copy(&uleventid), ::core::mem::transmute_copy(&ppeasobject)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), get_EasMessage: get_EasMessage::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_EasMessage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_Encoder_Impl: Sized {
fn QueryCapabilities(&self, numaudiofmts: *mut u32, numvideofmts: *mut u32) -> ::windows_core::Result<()>;
fn EnumAudioCapability(&self, fmtindex: u32, methodid: *mut u32, algorithmtype: *mut u32, samplingrate: *mut u32, bitdepth: *mut u32, numchannels: *mut u32) -> ::windows_core::Result<()>;
fn EnumVideoCapability(&self, fmtindex: u32, methodid: *mut u32, algorithmtype: *mut u32, verticalsize: *mut u32, horizontalsize: *mut u32, aspectratio: *mut u32, frameratecode: *mut u32, progressivesequence: *mut u32) -> ::windows_core::Result<()>;
fn SetParameters(&self, audiobitratemode: u32, audiobitrate: u32, audiomethodid: u32, audioprogram: u32, videobitratemode: u32, videobitrate: u32, videomethodid: u32) -> ::windows_core::Result<()>;
fn GetState(&self, audiobitratemax: *mut u32, audiobitratemin: *mut u32, audiobitratemode: *mut u32, audiobitratestepping: *mut u32, audiobitrate: *mut u32, audiomethodid: *mut u32, availableaudioprograms: *mut u32, audioprogram: *mut u32, videobitratemax: *mut u32, videobitratemin: *mut u32, videobitratemode: *mut u32, videobitrate: *mut u32, videobitratestepping: *mut u32, videomethodid: *mut u32, signalsourceid: *mut u32, signalformat: *mut u64, signallock: *mut super::super::Foundation::BOOL, signallevel: *mut i32, signaltonoiseratio: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_Encoder {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_Encoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>() -> IBDA_Encoder_Vtbl {
unsafe extern "system" fn QueryCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, numaudiofmts: *mut u32, numvideofmts: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryCapabilities(::core::mem::transmute_copy(&numaudiofmts), ::core::mem::transmute_copy(&numvideofmts)).into()
}
unsafe extern "system" fn EnumAudioCapability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtindex: u32, methodid: *mut u32, algorithmtype: *mut u32, samplingrate: *mut u32, bitdepth: *mut u32, numchannels: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumAudioCapability(::core::mem::transmute_copy(&fmtindex), ::core::mem::transmute_copy(&methodid), ::core::mem::transmute_copy(&algorithmtype), ::core::mem::transmute_copy(&samplingrate), ::core::mem::transmute_copy(&bitdepth), ::core::mem::transmute_copy(&numchannels)).into()
}
unsafe extern "system" fn EnumVideoCapability<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fmtindex: u32, methodid: *mut u32, algorithmtype: *mut u32, verticalsize: *mut u32, horizontalsize: *mut u32, aspectratio: *mut u32, frameratecode: *mut u32, progressivesequence: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumVideoCapability(::core::mem::transmute_copy(&fmtindex), ::core::mem::transmute_copy(&methodid), ::core::mem::transmute_copy(&algorithmtype), ::core::mem::transmute_copy(&verticalsize), ::core::mem::transmute_copy(&horizontalsize), ::core::mem::transmute_copy(&aspectratio), ::core::mem::transmute_copy(&frameratecode), ::core::mem::transmute_copy(&progressivesequence)).into()
}
unsafe extern "system" fn SetParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, audiobitratemode: u32, audiobitrate: u32, audiomethodid: u32, audioprogram: u32, videobitratemode: u32, videobitrate: u32, videomethodid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParameters(::core::mem::transmute_copy(&audiobitratemode), ::core::mem::transmute_copy(&audiobitrate), ::core::mem::transmute_copy(&audiomethodid), ::core::mem::transmute_copy(&audioprogram), ::core::mem::transmute_copy(&videobitratemode), ::core::mem::transmute_copy(&videobitrate), ::core::mem::transmute_copy(&videomethodid)).into()
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Encoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, audiobitratemax: *mut u32, audiobitratemin: *mut u32, audiobitratemode: *mut u32, audiobitratestepping: *mut u32, audiobitrate: *mut u32, audiomethodid: *mut u32, availableaudioprograms: *mut u32, audioprogram: *mut u32, videobitratemax: *mut u32, videobitratemin: *mut u32, videobitratemode: *mut u32, videobitrate: *mut u32, videobitratestepping: *mut u32, videomethodid: *mut u32, signalsourceid: *mut u32, signalformat: *mut u64, signallock: *mut super::super::Foundation::BOOL, signallevel: *mut i32, signaltonoiseratio: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetState(
::core::mem::transmute_copy(&audiobitratemax),
::core::mem::transmute_copy(&audiobitratemin),
::core::mem::transmute_copy(&audiobitratemode),
::core::mem::transmute_copy(&audiobitratestepping),
::core::mem::transmute_copy(&audiobitrate),
::core::mem::transmute_copy(&audiomethodid),
::core::mem::transmute_copy(&availableaudioprograms),
::core::mem::transmute_copy(&audioprogram),
::core::mem::transmute_copy(&videobitratemax),
::core::mem::transmute_copy(&videobitratemin),
::core::mem::transmute_copy(&videobitratemode),
::core::mem::transmute_copy(&videobitrate),
::core::mem::transmute_copy(&videobitratestepping),
::core::mem::transmute_copy(&videomethodid),
::core::mem::transmute_copy(&signalsourceid),
::core::mem::transmute_copy(&signalformat),
::core::mem::transmute_copy(&signallock),
::core::mem::transmute_copy(&signallevel),
::core::mem::transmute_copy(&signaltonoiseratio),
)
.into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
QueryCapabilities: QueryCapabilities::<Identity, Impl, OFFSET>,
EnumAudioCapability: EnumAudioCapability::<Identity, Impl, OFFSET>,
EnumVideoCapability: EnumVideoCapability::<Identity, Impl, OFFSET>,
SetParameters: SetParameters::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_Encoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_EthernetFilter_Impl: Sized {
fn GetMulticastListSize(&self, pulcbaddresses: *mut u32) -> ::windows_core::Result<()>;
fn PutMulticastList(&self, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::Result<()>;
fn GetMulticastList(&self, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::Result<()>;
fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows_core::Result<()>;
fn GetMulticastMode(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBDA_EthernetFilter {}
impl IBDA_EthernetFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>() -> IBDA_EthernetFilter_Vtbl {
unsafe extern "system" fn GetMulticastListSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastListSize(::core::mem::transmute_copy(&pulcbaddresses)).into()
}
unsafe extern "system" fn PutMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastList(::core::mem::transmute_copy(&ulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn GetMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastList(::core::mem::transmute_copy(&pulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn PutMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmodemask: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastMode(::core::mem::transmute_copy(&ulmodemask)).into()
}
unsafe extern "system" fn GetMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EthernetFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulmodemask: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMulticastMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulmodemask, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMulticastListSize: GetMulticastListSize::<Identity, Impl, OFFSET>,
PutMulticastList: PutMulticastList::<Identity, Impl, OFFSET>,
GetMulticastList: GetMulticastList::<Identity, Impl, OFFSET>,
PutMulticastMode: PutMulticastMode::<Identity, Impl, OFFSET>,
GetMulticastMode: GetMulticastMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_EthernetFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_EventingService_Impl: Sized {
fn CompleteEvent(&self, uleventid: u32, uleventresult: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_EventingService {}
impl IBDA_EventingService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EventingService_Impl, const OFFSET: isize>() -> IBDA_EventingService_Vtbl {
unsafe extern "system" fn CompleteEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_EventingService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uleventid: u32, uleventresult: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompleteEvent(::core::mem::transmute_copy(&uleventid), ::core::mem::transmute_copy(&uleventresult)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CompleteEvent: CompleteEvent::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_EventingService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_FDC_Impl: Sized {
fn GetStatus(&self, currentbitrate: *mut u32, carrierlock: *mut super::super::Foundation::BOOL, currentfrequency: *mut u32, currentspectruminversion: *mut super::super::Foundation::BOOL, currentpidlist: *mut ::windows_core::BSTR, currenttidlist: *mut ::windows_core::BSTR, overflow: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn RequestTables(&self, tableids: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn AddPid(&self, pidstoadd: &::windows_core::BSTR) -> ::windows_core::Result<u32>;
fn RemovePid(&self, pidstoremove: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn AddTid(&self, tidstoadd: &::windows_core::BSTR) -> ::windows_core::Result<::windows_core::BSTR>;
fn RemoveTid(&self, tidstoremove: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn GetTableSection(&self, pid: *mut u32, maxbuffersize: u32, actualsize: *mut u32, secbuffer: *mut u8) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_FDC {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_FDC_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>() -> IBDA_FDC_Vtbl {
unsafe extern "system" fn GetStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, currentbitrate: *mut u32, carrierlock: *mut super::super::Foundation::BOOL, currentfrequency: *mut u32, currentspectruminversion: *mut super::super::Foundation::BOOL, currentpidlist: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, currenttidlist: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>, overflow: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStatus(::core::mem::transmute_copy(&currentbitrate), ::core::mem::transmute_copy(&carrierlock), ::core::mem::transmute_copy(&currentfrequency), ::core::mem::transmute_copy(&currentspectruminversion), ::core::mem::transmute_copy(&currentpidlist), ::core::mem::transmute_copy(&currenttidlist), ::core::mem::transmute_copy(&overflow)).into()
}
unsafe extern "system" fn RequestTables<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tableids: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestTables(::core::mem::transmute(&tableids)).into()
}
unsafe extern "system" fn AddPid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidstoadd: ::std::mem::MaybeUninit<::windows_core::BSTR>, remainingfilterentries: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddPid(::core::mem::transmute(&pidstoadd)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(remainingfilterentries, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemovePid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidstoremove: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemovePid(::core::mem::transmute(&pidstoremove)).into()
}
unsafe extern "system" fn AddTid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tidstoadd: ::std::mem::MaybeUninit<::windows_core::BSTR>, currenttidlist: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddTid(::core::mem::transmute(&tidstoadd)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(currenttidlist, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveTid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tidstoremove: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveTid(::core::mem::transmute(&tidstoremove)).into()
}
unsafe extern "system" fn GetTableSection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FDC_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pid: *mut u32, maxbuffersize: u32, actualsize: *mut u32, secbuffer: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTableSection(::core::mem::transmute_copy(&pid), ::core::mem::transmute_copy(&maxbuffersize), ::core::mem::transmute_copy(&actualsize), ::core::mem::transmute_copy(&secbuffer)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetStatus: GetStatus::<Identity, Impl, OFFSET>,
RequestTables: RequestTables::<Identity, Impl, OFFSET>,
AddPid: AddPid::<Identity, Impl, OFFSET>,
RemovePid: RemovePid::<Identity, Impl, OFFSET>,
AddTid: AddTid::<Identity, Impl, OFFSET>,
RemoveTid: RemoveTid::<Identity, Impl, OFFSET>,
GetTableSection: GetTableSection::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_FDC as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_FrequencyFilter_Impl: Sized {
fn SetAutotune(&self, ultransponder: u32) -> ::windows_core::Result<()>;
fn Autotune(&self, pultransponder: *mut u32) -> ::windows_core::Result<()>;
fn SetFrequency(&self, ulfrequency: u32) -> ::windows_core::Result<()>;
fn Frequency(&self, pulfrequency: *mut u32) -> ::windows_core::Result<()>;
fn SetPolarity(&self, polarity: Polarisation) -> ::windows_core::Result<()>;
fn Polarity(&self, ppolarity: *mut Polarisation) -> ::windows_core::Result<()>;
fn SetRange(&self, ulrange: u32) -> ::windows_core::Result<()>;
fn Range(&self, pulrange: *mut u32) -> ::windows_core::Result<()>;
fn SetBandwidth(&self, ulbandwidth: u32) -> ::windows_core::Result<()>;
fn Bandwidth(&self, pulbandwidth: *mut u32) -> ::windows_core::Result<()>;
fn SetFrequencyMultiplier(&self, ulmultiplier: u32) -> ::windows_core::Result<()>;
fn FrequencyMultiplier(&self, pulmultiplier: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_FrequencyFilter {}
impl IBDA_FrequencyFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>() -> IBDA_FrequencyFilter_Vtbl {
unsafe extern "system" fn SetAutotune<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultransponder: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAutotune(::core::mem::transmute_copy(&ultransponder)).into()
}
unsafe extern "system" fn Autotune<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pultransponder: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Autotune(::core::mem::transmute_copy(&pultransponder)).into()
}
unsafe extern "system" fn SetFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulfrequency: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFrequency(::core::mem::transmute_copy(&ulfrequency)).into()
}
unsafe extern "system" fn Frequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulfrequency: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Frequency(::core::mem::transmute_copy(&pulfrequency)).into()
}
unsafe extern "system" fn SetPolarity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, polarity: Polarisation) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPolarity(::core::mem::transmute_copy(&polarity)).into()
}
unsafe extern "system" fn Polarity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppolarity: *mut Polarisation) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Polarity(::core::mem::transmute_copy(&ppolarity)).into()
}
unsafe extern "system" fn SetRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrange: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRange(::core::mem::transmute_copy(&ulrange)).into()
}
unsafe extern "system" fn Range<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulrange: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Range(::core::mem::transmute_copy(&pulrange)).into()
}
unsafe extern "system" fn SetBandwidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbandwidth: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBandwidth(::core::mem::transmute_copy(&ulbandwidth)).into()
}
unsafe extern "system" fn Bandwidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulbandwidth: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Bandwidth(::core::mem::transmute_copy(&pulbandwidth)).into()
}
unsafe extern "system" fn SetFrequencyMultiplier<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmultiplier: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFrequencyMultiplier(::core::mem::transmute_copy(&ulmultiplier)).into()
}
unsafe extern "system" fn FrequencyMultiplier<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_FrequencyFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulmultiplier: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FrequencyMultiplier(::core::mem::transmute_copy(&pulmultiplier)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAutotune: SetAutotune::<Identity, Impl, OFFSET>,
Autotune: Autotune::<Identity, Impl, OFFSET>,
SetFrequency: SetFrequency::<Identity, Impl, OFFSET>,
Frequency: Frequency::<Identity, Impl, OFFSET>,
SetPolarity: SetPolarity::<Identity, Impl, OFFSET>,
Polarity: Polarity::<Identity, Impl, OFFSET>,
SetRange: SetRange::<Identity, Impl, OFFSET>,
Range: Range::<Identity, Impl, OFFSET>,
SetBandwidth: SetBandwidth::<Identity, Impl, OFFSET>,
Bandwidth: Bandwidth::<Identity, Impl, OFFSET>,
SetFrequencyMultiplier: SetFrequencyMultiplier::<Identity, Impl, OFFSET>,
FrequencyMultiplier: FrequencyMultiplier::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_FrequencyFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_GuideDataDeliveryService_Impl: Sized {
fn GetGuideDataType(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetGuideData(&self, pulcbbufferlen: *mut u32, pbbuffer: *mut u8, pulguidedatapercentageprogress: *mut u32) -> ::windows_core::Result<()>;
fn RequestGuideDataUpdate(&self) -> ::windows_core::Result<()>;
fn GetTuneXmlFromServiceIdx(&self, ul64serviceidx: u64) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetServices(&self, pulcbbufferlen: *mut u32, pbbuffer: *mut u8) -> ::windows_core::Result<()>;
fn GetServiceInfoFromTuneXml(&self, bstrtunexml: &::windows_core::BSTR) -> ::windows_core::Result<::windows_core::BSTR>;
}
impl ::windows_core::RuntimeName for IBDA_GuideDataDeliveryService {}
impl IBDA_GuideDataDeliveryService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>() -> IBDA_GuideDataDeliveryService_Vtbl {
unsafe extern "system" fn GetGuideDataType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguiddatatype: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetGuideDataType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguiddatatype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetGuideData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbbufferlen: *mut u32, pbbuffer: *mut u8, pulguidedatapercentageprogress: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetGuideData(::core::mem::transmute_copy(&pulcbbufferlen), ::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&pulguidedatapercentageprogress)).into()
}
unsafe extern "system" fn RequestGuideDataUpdate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestGuideDataUpdate().into()
}
unsafe extern "system" fn GetTuneXmlFromServiceIdx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ul64serviceidx: u64, pbstrtunexml: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTuneXmlFromServiceIdx(::core::mem::transmute_copy(&ul64serviceidx)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrtunexml, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetServices<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbbufferlen: *mut u32, pbbuffer: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetServices(::core::mem::transmute_copy(&pulcbbufferlen), ::core::mem::transmute_copy(&pbbuffer)).into()
}
unsafe extern "system" fn GetServiceInfoFromTuneXml<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_GuideDataDeliveryService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrtunexml: ::std::mem::MaybeUninit<::windows_core::BSTR>, pbstrservicedescription: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetServiceInfoFromTuneXml(::core::mem::transmute(&bstrtunexml)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrservicedescription, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetGuideDataType: GetGuideDataType::<Identity, Impl, OFFSET>,
GetGuideData: GetGuideData::<Identity, Impl, OFFSET>,
RequestGuideDataUpdate: RequestGuideDataUpdate::<Identity, Impl, OFFSET>,
GetTuneXmlFromServiceIdx: GetTuneXmlFromServiceIdx::<Identity, Impl, OFFSET>,
GetServices: GetServices::<Identity, Impl, OFFSET>,
GetServiceInfoFromTuneXml: GetServiceInfoFromTuneXml::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_GuideDataDeliveryService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_IPSinkControl_Impl: Sized {
fn GetMulticastList(&self, pulcbsize: *mut u32, pbbuffer: *mut *mut u8) -> ::windows_core::Result<()>;
fn GetAdapterIPAddress(&self, pulcbsize: *mut u32, pbbuffer: *mut *mut u8) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_IPSinkControl {}
impl IBDA_IPSinkControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkControl_Impl, const OFFSET: isize>() -> IBDA_IPSinkControl_Vtbl {
unsafe extern "system" fn GetMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbsize: *mut u32, pbbuffer: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastList(::core::mem::transmute_copy(&pulcbsize), ::core::mem::transmute_copy(&pbbuffer)).into()
}
unsafe extern "system" fn GetAdapterIPAddress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbsize: *mut u32, pbbuffer: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAdapterIPAddress(::core::mem::transmute_copy(&pulcbsize), ::core::mem::transmute_copy(&pbbuffer)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMulticastList: GetMulticastList::<Identity, Impl, OFFSET>,
GetAdapterIPAddress: GetAdapterIPAddress::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_IPSinkControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_IPSinkInfo_Impl: Sized {
fn get_MulticastList(&self, pulcbaddresses: *mut u32, ppbaddresslist: *mut *mut u8) -> ::windows_core::Result<()>;
fn AdapterIPAddress(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn AdapterDescription(&self) -> ::windows_core::Result<::windows_core::BSTR>;
}
impl ::windows_core::RuntimeName for IBDA_IPSinkInfo {}
impl IBDA_IPSinkInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkInfo_Impl, const OFFSET: isize>() -> IBDA_IPSinkInfo_Vtbl {
unsafe extern "system" fn get_MulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32, ppbaddresslist: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_MulticastList(::core::mem::transmute_copy(&pulcbaddresses), ::core::mem::transmute_copy(&ppbaddresslist)).into()
}
unsafe extern "system" fn AdapterIPAddress<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrbuffer: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AdapterIPAddress() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrbuffer, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AdapterDescription<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPSinkInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrbuffer: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AdapterDescription() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrbuffer, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_MulticastList: get_MulticastList::<Identity, Impl, OFFSET>,
AdapterIPAddress: AdapterIPAddress::<Identity, Impl, OFFSET>,
AdapterDescription: AdapterDescription::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_IPSinkInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_IPV4Filter_Impl: Sized {
fn GetMulticastListSize(&self, pulcbaddresses: *mut u32) -> ::windows_core::Result<()>;
fn PutMulticastList(&self, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::Result<()>;
fn GetMulticastList(&self, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::Result<()>;
fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows_core::Result<()>;
fn GetMulticastMode(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBDA_IPV4Filter {}
impl IBDA_IPV4Filter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>() -> IBDA_IPV4Filter_Vtbl {
unsafe extern "system" fn GetMulticastListSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastListSize(::core::mem::transmute_copy(&pulcbaddresses)).into()
}
unsafe extern "system" fn PutMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastList(::core::mem::transmute_copy(&ulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn GetMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastList(::core::mem::transmute_copy(&pulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn PutMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmodemask: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastMode(::core::mem::transmute_copy(&ulmodemask)).into()
}
unsafe extern "system" fn GetMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV4Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulmodemask: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMulticastMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulmodemask, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMulticastListSize: GetMulticastListSize::<Identity, Impl, OFFSET>,
PutMulticastList: PutMulticastList::<Identity, Impl, OFFSET>,
GetMulticastList: GetMulticastList::<Identity, Impl, OFFSET>,
PutMulticastMode: PutMulticastMode::<Identity, Impl, OFFSET>,
GetMulticastMode: GetMulticastMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_IPV4Filter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_IPV6Filter_Impl: Sized {
fn GetMulticastListSize(&self, pulcbaddresses: *mut u32) -> ::windows_core::Result<()>;
fn PutMulticastList(&self, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::Result<()>;
fn GetMulticastList(&self, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::Result<()>;
fn PutMulticastMode(&self, ulmodemask: u32) -> ::windows_core::Result<()>;
fn GetMulticastMode(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBDA_IPV6Filter {}
impl IBDA_IPV6Filter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>() -> IBDA_IPV6Filter_Vtbl {
unsafe extern "system" fn GetMulticastListSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastListSize(::core::mem::transmute_copy(&pulcbaddresses)).into()
}
unsafe extern "system" fn PutMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcbaddresses: u32, paddresslist: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastList(::core::mem::transmute_copy(&ulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn GetMulticastList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcbaddresses: *mut u32, paddresslist: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMulticastList(::core::mem::transmute_copy(&pulcbaddresses), ::core::mem::transmute_copy(&paddresslist)).into()
}
unsafe extern "system" fn PutMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmodemask: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutMulticastMode(::core::mem::transmute_copy(&ulmodemask)).into()
}
unsafe extern "system" fn GetMulticastMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_IPV6Filter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulmodemask: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMulticastMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulmodemask, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMulticastListSize: GetMulticastListSize::<Identity, Impl, OFFSET>,
PutMulticastList: PutMulticastList::<Identity, Impl, OFFSET>,
GetMulticastList: GetMulticastList::<Identity, Impl, OFFSET>,
PutMulticastMode: PutMulticastMode::<Identity, Impl, OFFSET>,
GetMulticastMode: GetMulticastMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_IPV6Filter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_ISDBConditionalAccess_Impl: Sized {
fn SetIsdbCasRequest(&self, ulrequestid: u32, ulcbrequestbufferlen: u32, pbrequestbuffer: *const u8) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_ISDBConditionalAccess {}
impl IBDA_ISDBConditionalAccess_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ISDBConditionalAccess_Impl, const OFFSET: isize>() -> IBDA_ISDBConditionalAccess_Vtbl {
unsafe extern "system" fn SetIsdbCasRequest<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_ISDBConditionalAccess_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrequestid: u32, ulcbrequestbufferlen: u32, pbrequestbuffer: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIsdbCasRequest(::core::mem::transmute_copy(&ulrequestid), ::core::mem::transmute_copy(&ulcbrequestbufferlen), ::core::mem::transmute_copy(&pbrequestbuffer)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetIsdbCasRequest: SetIsdbCasRequest::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_ISDBConditionalAccess as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_LNBInfo_Impl: Sized {
fn SetLocalOscilatorFrequencyLowBand(&self, ulloflow: u32) -> ::windows_core::Result<()>;
fn LocalOscilatorFrequencyLowBand(&self, pulloflow: *mut u32) -> ::windows_core::Result<()>;
fn SetLocalOscilatorFrequencyHighBand(&self, ullofhigh: u32) -> ::windows_core::Result<()>;
fn LocalOscilatorFrequencyHighBand(&self, pullofhigh: *mut u32) -> ::windows_core::Result<()>;
fn SetHighLowSwitchFrequency(&self, ulswitchfrequency: u32) -> ::windows_core::Result<()>;
fn HighLowSwitchFrequency(&self, pulswitchfrequency: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_LNBInfo {}
impl IBDA_LNBInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>() -> IBDA_LNBInfo_Vtbl {
unsafe extern "system" fn SetLocalOscilatorFrequencyLowBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulloflow: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLocalOscilatorFrequencyLowBand(::core::mem::transmute_copy(&ulloflow)).into()
}
unsafe extern "system" fn LocalOscilatorFrequencyLowBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulloflow: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LocalOscilatorFrequencyLowBand(::core::mem::transmute_copy(&pulloflow)).into()
}
unsafe extern "system" fn SetLocalOscilatorFrequencyHighBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullofhigh: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLocalOscilatorFrequencyHighBand(::core::mem::transmute_copy(&ullofhigh)).into()
}
unsafe extern "system" fn LocalOscilatorFrequencyHighBand<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pullofhigh: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LocalOscilatorFrequencyHighBand(::core::mem::transmute_copy(&pullofhigh)).into()
}
unsafe extern "system" fn SetHighLowSwitchFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulswitchfrequency: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHighLowSwitchFrequency(::core::mem::transmute_copy(&ulswitchfrequency)).into()
}
unsafe extern "system" fn HighLowSwitchFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_LNBInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulswitchfrequency: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HighLowSwitchFrequency(::core::mem::transmute_copy(&pulswitchfrequency)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetLocalOscilatorFrequencyLowBand: SetLocalOscilatorFrequencyLowBand::<Identity, Impl, OFFSET>,
LocalOscilatorFrequencyLowBand: LocalOscilatorFrequencyLowBand::<Identity, Impl, OFFSET>,
SetLocalOscilatorFrequencyHighBand: SetLocalOscilatorFrequencyHighBand::<Identity, Impl, OFFSET>,
LocalOscilatorFrequencyHighBand: LocalOscilatorFrequencyHighBand::<Identity, Impl, OFFSET>,
SetHighLowSwitchFrequency: SetHighLowSwitchFrequency::<Identity, Impl, OFFSET>,
HighLowSwitchFrequency: HighLowSwitchFrequency::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_LNBInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_MUX_Impl: Sized {
fn SetPidList(&self, ulpidlistcount: u32, pbpidlistbuffer: *const BDA_MUX_PIDLISTITEM) -> ::windows_core::Result<()>;
fn GetPidList(&self, pulpidlistcount: *mut u32, pbpidlistbuffer: *mut BDA_MUX_PIDLISTITEM) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_MUX {}
impl IBDA_MUX_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_MUX_Impl, const OFFSET: isize>() -> IBDA_MUX_Vtbl {
unsafe extern "system" fn SetPidList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_MUX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpidlistcount: u32, pbpidlistbuffer: *const BDA_MUX_PIDLISTITEM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPidList(::core::mem::transmute_copy(&ulpidlistcount), ::core::mem::transmute_copy(&pbpidlistbuffer)).into()
}
unsafe extern "system" fn GetPidList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_MUX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulpidlistcount: *mut u32, pbpidlistbuffer: *mut BDA_MUX_PIDLISTITEM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPidList(::core::mem::transmute_copy(&pulpidlistcount), ::core::mem::transmute_copy(&pbpidlistbuffer)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetPidList: SetPidList::<Identity, Impl, OFFSET>,
GetPidList: GetPidList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_MUX as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_NameValueService_Impl: Sized {
fn GetValueNameByIndex(&self, ulindex: u32) -> ::windows_core::Result<::windows_core::BSTR>;
fn GetValue(&self, bstrname: &::windows_core::BSTR, bstrlanguage: &::windows_core::BSTR) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetValue(&self, uldialogrequest: u32, bstrlanguage: &::windows_core::BSTR, bstrname: &::windows_core::BSTR, bstrvalue: &::windows_core::BSTR, ulreserved: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_NameValueService {}
impl IBDA_NameValueService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NameValueService_Impl, const OFFSET: isize>() -> IBDA_NameValueService_Vtbl {
unsafe extern "system" fn GetValueNameByIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NameValueService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulindex: u32, pbstrname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValueNameByIndex(::core::mem::transmute_copy(&ulindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NameValueService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstrname: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, pbstrvalue: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue(::core::mem::transmute(&bstrname), ::core::mem::transmute(&bstrlanguage)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NameValueService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldialogrequest: u32, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrname: ::std::mem::MaybeUninit<::windows_core::BSTR>, bstrvalue: ::std::mem::MaybeUninit<::windows_core::BSTR>, ulreserved: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValue(::core::mem::transmute_copy(&uldialogrequest), ::core::mem::transmute(&bstrlanguage), ::core::mem::transmute(&bstrname), ::core::mem::transmute(&bstrvalue), ::core::mem::transmute_copy(&ulreserved)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetValueNameByIndex: GetValueNameByIndex::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
SetValue: SetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_NameValueService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_NetworkProvider_Impl: Sized {
fn PutSignalSource(&self, ulsignalsource: u32) -> ::windows_core::Result<()>;
fn GetSignalSource(&self, pulsignalsource: *mut u32) -> ::windows_core::Result<()>;
fn GetNetworkType(&self, pguidnetworktype: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn PutTuningSpace(&self, guidtuningspace: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetTuningSpace(&self, pguidtuingspace: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn RegisterDeviceFilter(&self, punkfiltercontrol: ::core::option::Option<&::windows_core::IUnknown>, ppvregisitrationcontext: *mut u32) -> ::windows_core::Result<()>;
fn UnRegisterDeviceFilter(&self, pvregistrationcontext: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_NetworkProvider {}
impl IBDA_NetworkProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>() -> IBDA_NetworkProvider_Vtbl {
unsafe extern "system" fn PutSignalSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulsignalsource: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutSignalSource(::core::mem::transmute_copy(&ulsignalsource)).into()
}
unsafe extern "system" fn GetSignalSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulsignalsource: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSignalSource(::core::mem::transmute_copy(&pulsignalsource)).into()
}
unsafe extern "system" fn GetNetworkType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidnetworktype: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNetworkType(::core::mem::transmute_copy(&pguidnetworktype)).into()
}
unsafe extern "system" fn PutTuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidtuningspace: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutTuningSpace(::core::mem::transmute_copy(&guidtuningspace)).into()
}
unsafe extern "system" fn GetTuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidtuingspace: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTuningSpace(::core::mem::transmute_copy(&pguidtuingspace)).into()
}
unsafe extern "system" fn RegisterDeviceFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, punkfiltercontrol: *mut ::core::ffi::c_void, ppvregisitrationcontext: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterDeviceFilter(::windows_core::from_raw_borrowed(&punkfiltercontrol), ::core::mem::transmute_copy(&ppvregisitrationcontext)).into()
}
unsafe extern "system" fn UnRegisterDeviceFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NetworkProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvregistrationcontext: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnRegisterDeviceFilter(::core::mem::transmute_copy(&pvregistrationcontext)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PutSignalSource: PutSignalSource::<Identity, Impl, OFFSET>,
GetSignalSource: GetSignalSource::<Identity, Impl, OFFSET>,
GetNetworkType: GetNetworkType::<Identity, Impl, OFFSET>,
PutTuningSpace: PutTuningSpace::<Identity, Impl, OFFSET>,
GetTuningSpace: GetTuningSpace::<Identity, Impl, OFFSET>,
RegisterDeviceFilter: RegisterDeviceFilter::<Identity, Impl, OFFSET>,
UnRegisterDeviceFilter: UnRegisterDeviceFilter::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_NetworkProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_NullTransform_Impl: Sized {
fn Start(&self) -> ::windows_core::Result<()>;
fn Stop(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_NullTransform {}
impl IBDA_NullTransform_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NullTransform_Impl, const OFFSET: isize>() -> IBDA_NullTransform_Vtbl {
unsafe extern "system" fn Start<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NullTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Start().into()
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_NullTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Start: Start::<Identity, Impl, OFFSET>, Stop: Stop::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_NullTransform as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_PinControl_Impl: Sized {
fn GetPinID(&self, pulpinid: *mut u32) -> ::windows_core::Result<()>;
fn GetPinType(&self, pulpintype: *mut u32) -> ::windows_core::Result<()>;
fn RegistrationContext(&self, pulregistrationctx: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_PinControl {}
impl IBDA_PinControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_PinControl_Impl, const OFFSET: isize>() -> IBDA_PinControl_Vtbl {
unsafe extern "system" fn GetPinID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_PinControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulpinid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPinID(::core::mem::transmute_copy(&pulpinid)).into()
}
unsafe extern "system" fn GetPinType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_PinControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulpintype: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPinType(::core::mem::transmute_copy(&pulpintype)).into()
}
unsafe extern "system" fn RegistrationContext<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_PinControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulregistrationctx: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegistrationContext(::core::mem::transmute_copy(&pulregistrationctx)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPinID: GetPinID::<Identity, Impl, OFFSET>,
GetPinType: GetPinType::<Identity, Impl, OFFSET>,
RegistrationContext: RegistrationContext::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_PinControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_SignalProperties_Impl: Sized {
fn PutNetworkType(&self, guidnetworktype: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetNetworkType(&self, pguidnetworktype: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn PutSignalSource(&self, ulsignalsource: u32) -> ::windows_core::Result<()>;
fn GetSignalSource(&self, pulsignalsource: *mut u32) -> ::windows_core::Result<()>;
fn PutTuningSpace(&self, guidtuningspace: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetTuningSpace(&self, pguidtuingspace: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_SignalProperties {}
impl IBDA_SignalProperties_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>() -> IBDA_SignalProperties_Vtbl {
unsafe extern "system" fn PutNetworkType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidnetworktype: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutNetworkType(::core::mem::transmute_copy(&guidnetworktype)).into()
}
unsafe extern "system" fn GetNetworkType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidnetworktype: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNetworkType(::core::mem::transmute_copy(&pguidnetworktype)).into()
}
unsafe extern "system" fn PutSignalSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulsignalsource: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutSignalSource(::core::mem::transmute_copy(&ulsignalsource)).into()
}
unsafe extern "system" fn GetSignalSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulsignalsource: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSignalSource(::core::mem::transmute_copy(&pulsignalsource)).into()
}
unsafe extern "system" fn PutTuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidtuningspace: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PutTuningSpace(::core::mem::transmute_copy(&guidtuningspace)).into()
}
unsafe extern "system" fn GetTuningSpace<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalProperties_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidtuingspace: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTuningSpace(::core::mem::transmute_copy(&pguidtuingspace)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PutNetworkType: PutNetworkType::<Identity, Impl, OFFSET>,
GetNetworkType: GetNetworkType::<Identity, Impl, OFFSET>,
PutSignalSource: PutSignalSource::<Identity, Impl, OFFSET>,
GetSignalSource: GetSignalSource::<Identity, Impl, OFFSET>,
PutTuningSpace: PutTuningSpace::<Identity, Impl, OFFSET>,
GetTuningSpace: GetTuningSpace::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_SignalProperties as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBDA_SignalStatistics_Impl: Sized {
fn SetSignalStrength(&self, ldbstrength: i32) -> ::windows_core::Result<()>;
fn SignalStrength(&self, pldbstrength: *mut i32) -> ::windows_core::Result<()>;
fn SetSignalQuality(&self, lpercentquality: i32) -> ::windows_core::Result<()>;
fn SignalQuality(&self, plpercentquality: *mut i32) -> ::windows_core::Result<()>;
fn SetSignalPresent(&self, fpresent: super::super::Foundation::BOOLEAN) -> ::windows_core::Result<()>;
fn SignalPresent(&self, pfpresent: *mut u8) -> ::windows_core::Result<()>;
fn SetSignalLocked(&self, flocked: super::super::Foundation::BOOLEAN) -> ::windows_core::Result<()>;
fn SignalLocked(&self, pflocked: *mut u8) -> ::windows_core::Result<()>;
fn SetSampleTime(&self, lmssampletime: i32) -> ::windows_core::Result<()>;
fn SampleTime(&self, plmssampletime: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBDA_SignalStatistics {}
#[cfg(feature = "Win32_Foundation")]
impl IBDA_SignalStatistics_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>() -> IBDA_SignalStatistics_Vtbl {
unsafe extern "system" fn SetSignalStrength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ldbstrength: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSignalStrength(::core::mem::transmute_copy(&ldbstrength)).into()
}
unsafe extern "system" fn SignalStrength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pldbstrength: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SignalStrength(::core::mem::transmute_copy(&pldbstrength)).into()
}
unsafe extern "system" fn SetSignalQuality<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpercentquality: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSignalQuality(::core::mem::transmute_copy(&lpercentquality)).into()
}
unsafe extern "system" fn SignalQuality<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plpercentquality: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SignalQuality(::core::mem::transmute_copy(&plpercentquality)).into()
}
unsafe extern "system" fn SetSignalPresent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fpresent: super::super::Foundation::BOOLEAN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSignalPresent(::core::mem::transmute_copy(&fpresent)).into()
}
unsafe extern "system" fn SignalPresent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfpresent: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SignalPresent(::core::mem::transmute_copy(&pfpresent)).into()
}
unsafe extern "system" fn SetSignalLocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flocked: super::super::Foundation::BOOLEAN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSignalLocked(::core::mem::transmute_copy(&flocked)).into()
}
unsafe extern "system" fn SignalLocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pflocked: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SignalLocked(::core::mem::transmute_copy(&pflocked)).into()
}
unsafe extern "system" fn SetSampleTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lmssampletime: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSampleTime(::core::mem::transmute_copy(&lmssampletime)).into()
}
unsafe extern "system" fn SampleTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_SignalStatistics_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plmssampletime: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SampleTime(::core::mem::transmute_copy(&plmssampletime)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetSignalStrength: SetSignalStrength::<Identity, Impl, OFFSET>,
SignalStrength: SignalStrength::<Identity, Impl, OFFSET>,
SetSignalQuality: SetSignalQuality::<Identity, Impl, OFFSET>,
SignalQuality: SignalQuality::<Identity, Impl, OFFSET>,
SetSignalPresent: SetSignalPresent::<Identity, Impl, OFFSET>,
SignalPresent: SignalPresent::<Identity, Impl, OFFSET>,
SetSignalLocked: SetSignalLocked::<Identity, Impl, OFFSET>,
SignalLocked: SignalLocked::<Identity, Impl, OFFSET>,
SetSampleTime: SetSampleTime::<Identity, Impl, OFFSET>,
SampleTime: SampleTime::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_SignalStatistics as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IBDA_Topology_Impl: Sized {
fn GetNodeTypes(&self, pulcnodetypes: *mut u32, ulcnodetypesmax: u32, rgulnodetypes: *mut u32) -> ::windows_core::Result<()>;
fn GetNodeDescriptors(&self, ulcnodedescriptors: *mut u32, ulcnodedescriptorsmax: u32, rgnodedescriptors: *mut BDANODE_DESCRIPTOR) -> ::windows_core::Result<()>;
fn GetNodeInterfaces(&self, ulnodetype: u32, pulcinterfaces: *mut u32, ulcinterfacesmax: u32, rgguidinterfaces: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetPinTypes(&self, pulcpintypes: *mut u32, ulcpintypesmax: u32, rgulpintypes: *mut u32) -> ::windows_core::Result<()>;
fn GetTemplateConnections(&self, pulcconnections: *mut u32, ulcconnectionsmax: u32, rgconnections: *mut BDA_TEMPLATE_CONNECTION) -> ::windows_core::Result<()>;
fn CreatePin(&self, ulpintype: u32, pulpinid: *mut u32) -> ::windows_core::Result<()>;
fn DeletePin(&self, ulpinid: u32) -> ::windows_core::Result<()>;
fn SetMediaType(&self, ulpinid: u32, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn SetMedium(&self, ulpinid: u32, pmedium: *const REGPINMEDIUM) -> ::windows_core::Result<()>;
fn CreateTopology(&self, ulinputpinid: u32, uloutputpinid: u32) -> ::windows_core::Result<()>;
fn GetControlNode(&self, ulinputpinid: u32, uloutputpinid: u32, ulnodetype: u32, ppcontrolnode: *mut ::core::option::Option<::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IBDA_Topology {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IBDA_Topology_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>() -> IBDA_Topology_Vtbl {
unsafe extern "system" fn GetNodeTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcnodetypes: *mut u32, ulcnodetypesmax: u32, rgulnodetypes: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNodeTypes(::core::mem::transmute_copy(&pulcnodetypes), ::core::mem::transmute_copy(&ulcnodetypesmax), ::core::mem::transmute_copy(&rgulnodetypes)).into()
}
unsafe extern "system" fn GetNodeDescriptors<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcnodedescriptors: *mut u32, ulcnodedescriptorsmax: u32, rgnodedescriptors: *mut BDANODE_DESCRIPTOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNodeDescriptors(::core::mem::transmute_copy(&ulcnodedescriptors), ::core::mem::transmute_copy(&ulcnodedescriptorsmax), ::core::mem::transmute_copy(&rgnodedescriptors)).into()
}
unsafe extern "system" fn GetNodeInterfaces<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulnodetype: u32, pulcinterfaces: *mut u32, ulcinterfacesmax: u32, rgguidinterfaces: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNodeInterfaces(::core::mem::transmute_copy(&ulnodetype), ::core::mem::transmute_copy(&pulcinterfaces), ::core::mem::transmute_copy(&ulcinterfacesmax), ::core::mem::transmute_copy(&rgguidinterfaces)).into()
}
unsafe extern "system" fn GetPinTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcpintypes: *mut u32, ulcpintypesmax: u32, rgulpintypes: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPinTypes(::core::mem::transmute_copy(&pulcpintypes), ::core::mem::transmute_copy(&ulcpintypesmax), ::core::mem::transmute_copy(&rgulpintypes)).into()
}
unsafe extern "system" fn GetTemplateConnections<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcconnections: *mut u32, ulcconnectionsmax: u32, rgconnections: *mut BDA_TEMPLATE_CONNECTION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTemplateConnections(::core::mem::transmute_copy(&pulcconnections), ::core::mem::transmute_copy(&ulcconnectionsmax), ::core::mem::transmute_copy(&rgconnections)).into()
}
unsafe extern "system" fn CreatePin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpintype: u32, pulpinid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreatePin(::core::mem::transmute_copy(&ulpintype), ::core::mem::transmute_copy(&pulpinid)).into()
}
unsafe extern "system" fn DeletePin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpinid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeletePin(::core::mem::transmute_copy(&ulpinid)).into()
}
unsafe extern "system" fn SetMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpinid: u32, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaType(::core::mem::transmute_copy(&ulpinid), ::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn SetMedium<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpinid: u32, pmedium: *const REGPINMEDIUM) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMedium(::core::mem::transmute_copy(&ulpinid), ::core::mem::transmute_copy(&pmedium)).into()
}
unsafe extern "system" fn CreateTopology<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulinputpinid: u32, uloutputpinid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateTopology(::core::mem::transmute_copy(&ulinputpinid), ::core::mem::transmute_copy(&uloutputpinid)).into()
}
unsafe extern "system" fn GetControlNode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_Topology_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulinputpinid: u32, uloutputpinid: u32, ulnodetype: u32, ppcontrolnode: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetControlNode(::core::mem::transmute_copy(&ulinputpinid), ::core::mem::transmute_copy(&uloutputpinid), ::core::mem::transmute_copy(&ulnodetype), ::core::mem::transmute_copy(&ppcontrolnode)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNodeTypes: GetNodeTypes::<Identity, Impl, OFFSET>,
GetNodeDescriptors: GetNodeDescriptors::<Identity, Impl, OFFSET>,
GetNodeInterfaces: GetNodeInterfaces::<Identity, Impl, OFFSET>,
GetPinTypes: GetPinTypes::<Identity, Impl, OFFSET>,
GetTemplateConnections: GetTemplateConnections::<Identity, Impl, OFFSET>,
CreatePin: CreatePin::<Identity, Impl, OFFSET>,
DeletePin: DeletePin::<Identity, Impl, OFFSET>,
SetMediaType: SetMediaType::<Identity, Impl, OFFSET>,
SetMedium: SetMedium::<Identity, Impl, OFFSET>,
CreateTopology: CreateTopology::<Identity, Impl, OFFSET>,
GetControlNode: GetControlNode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_Topology as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_TransportStreamInfo_Impl: Sized {
fn PatTableTickCount(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IBDA_TransportStreamInfo {}
impl IBDA_TransportStreamInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_TransportStreamInfo_Impl, const OFFSET: isize>() -> IBDA_TransportStreamInfo_Vtbl {
unsafe extern "system" fn PatTableTickCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_TransportStreamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppattickcount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PatTableTickCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppattickcount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), PatTableTickCount: PatTableTickCount::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_TransportStreamInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_TransportStreamSelector_Impl: Sized {
fn SetTSID(&self, ustsid: u16) -> ::windows_core::Result<()>;
fn GetTSInformation(&self, pultsinformationbufferlen: *mut u32, pbtsinformationbuffer: *mut u8) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_TransportStreamSelector {}
impl IBDA_TransportStreamSelector_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_TransportStreamSelector_Impl, const OFFSET: isize>() -> IBDA_TransportStreamSelector_Vtbl {
unsafe extern "system" fn SetTSID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_TransportStreamSelector_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ustsid: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTSID(::core::mem::transmute_copy(&ustsid)).into()
}
unsafe extern "system" fn GetTSInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_TransportStreamSelector_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pultsinformationbufferlen: *mut u32, pbtsinformationbuffer: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTSInformation(::core::mem::transmute_copy(&pultsinformationbufferlen), ::core::mem::transmute_copy(&pbtsinformationbuffer)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetTSID: SetTSID::<Identity, Impl, OFFSET>,
GetTSInformation: GetTSInformation::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_TransportStreamSelector as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_UserActivityService_Impl: Sized {
fn SetCurrentTunerUseReason(&self, dwusereason: u32) -> ::windows_core::Result<()>;
fn GetUserActivityInterval(&self) -> ::windows_core::Result<u32>;
fn UserActivityDetected(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_UserActivityService {}
impl IBDA_UserActivityService_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_UserActivityService_Impl, const OFFSET: isize>() -> IBDA_UserActivityService_Vtbl {
unsafe extern "system" fn SetCurrentTunerUseReason<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_UserActivityService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwusereason: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentTunerUseReason(::core::mem::transmute_copy(&dwusereason)).into()
}
unsafe extern "system" fn GetUserActivityInterval<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_UserActivityService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwactivityinterval: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetUserActivityInterval() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwactivityinterval, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UserActivityDetected<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_UserActivityService_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UserActivityDetected().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetCurrentTunerUseReason: SetCurrentTunerUseReason::<Identity, Impl, OFFSET>,
GetUserActivityInterval: GetUserActivityInterval::<Identity, Impl, OFFSET>,
UserActivityDetected: UserActivityDetected::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_UserActivityService as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_VoidTransform_Impl: Sized {
fn Start(&self) -> ::windows_core::Result<()>;
fn Stop(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_VoidTransform {}
impl IBDA_VoidTransform_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_VoidTransform_Impl, const OFFSET: isize>() -> IBDA_VoidTransform_Vtbl {
unsafe extern "system" fn Start<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_VoidTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Start().into()
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_VoidTransform_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Start: Start::<Identity, Impl, OFFSET>, Stop: Stop::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_VoidTransform as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_WMDRMSession_Impl: Sized {
fn GetStatus(&self, maxcapturetoken: *mut u32, maxstreamingpid: *mut u32, maxlicense: *mut u32, minsecuritylevel: *mut u32, revinfosequencenumber: *mut u32, revinfoissuedtime: *mut u64, revinfottl: *mut u32, revlistversion: *mut u32, ulstate: *mut u32) -> ::windows_core::Result<()>;
fn SetRevInfo(&self, ulrevinfolen: u32, pbrevinfo: *const u8) -> ::windows_core::Result<()>;
fn SetCrl(&self, ulcrllen: u32, pbcrllen: *const u8) -> ::windows_core::Result<()>;
fn TransactMessage(&self, ulcbrequest: u32, pbrequest: *const u8, pulcbresponse: *mut u32, pbresponse: *mut u8) -> ::windows_core::Result<()>;
fn GetLicense(&self, uuidkey: *const ::windows_core::GUID, pulpackagelen: *mut u32, pbpackage: *mut u8) -> ::windows_core::Result<()>;
fn ReissueLicense(&self, uuidkey: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn RenewLicense(&self, ulinxmrlicenselen: u32, pbinxmrlicense: *const u8, ulentitlementtokenlen: u32, pbentitlementtoken: *const u8, puldescramblestatus: *mut u32, puloutxmrlicenselen: *mut u32, pboutxmrlicense: *mut u8) -> ::windows_core::Result<()>;
fn GetKeyInfo(&self, pulkeyinfolen: *mut u32, pbkeyinfo: *mut u8) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_WMDRMSession {}
impl IBDA_WMDRMSession_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>() -> IBDA_WMDRMSession_Vtbl {
unsafe extern "system" fn GetStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, maxcapturetoken: *mut u32, maxstreamingpid: *mut u32, maxlicense: *mut u32, minsecuritylevel: *mut u32, revinfosequencenumber: *mut u32, revinfoissuedtime: *mut u64, revinfottl: *mut u32, revlistversion: *mut u32, ulstate: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStatus(::core::mem::transmute_copy(&maxcapturetoken), ::core::mem::transmute_copy(&maxstreamingpid), ::core::mem::transmute_copy(&maxlicense), ::core::mem::transmute_copy(&minsecuritylevel), ::core::mem::transmute_copy(&revinfosequencenumber), ::core::mem::transmute_copy(&revinfoissuedtime), ::core::mem::transmute_copy(&revinfottl), ::core::mem::transmute_copy(&revlistversion), ::core::mem::transmute_copy(&ulstate)).into()
}
unsafe extern "system" fn SetRevInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulrevinfolen: u32, pbrevinfo: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRevInfo(::core::mem::transmute_copy(&ulrevinfolen), ::core::mem::transmute_copy(&pbrevinfo)).into()
}
unsafe extern "system" fn SetCrl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcrllen: u32, pbcrllen: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCrl(::core::mem::transmute_copy(&ulcrllen), ::core::mem::transmute_copy(&pbcrllen)).into()
}
unsafe extern "system" fn TransactMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcbrequest: u32, pbrequest: *const u8, pulcbresponse: *mut u32, pbresponse: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TransactMessage(::core::mem::transmute_copy(&ulcbrequest), ::core::mem::transmute_copy(&pbrequest), ::core::mem::transmute_copy(&pulcbresponse), ::core::mem::transmute_copy(&pbresponse)).into()
}
unsafe extern "system" fn GetLicense<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uuidkey: *const ::windows_core::GUID, pulpackagelen: *mut u32, pbpackage: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetLicense(::core::mem::transmute_copy(&uuidkey), ::core::mem::transmute_copy(&pulpackagelen), ::core::mem::transmute_copy(&pbpackage)).into()
}
unsafe extern "system" fn ReissueLicense<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uuidkey: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReissueLicense(::core::mem::transmute_copy(&uuidkey)).into()
}
unsafe extern "system" fn RenewLicense<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulinxmrlicenselen: u32, pbinxmrlicense: *const u8, ulentitlementtokenlen: u32, pbentitlementtoken: *const u8, puldescramblestatus: *mut u32, puloutxmrlicenselen: *mut u32, pboutxmrlicense: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenewLicense(::core::mem::transmute_copy(&ulinxmrlicenselen), ::core::mem::transmute_copy(&pbinxmrlicense), ::core::mem::transmute_copy(&ulentitlementtokenlen), ::core::mem::transmute_copy(&pbentitlementtoken), ::core::mem::transmute_copy(&puldescramblestatus), ::core::mem::transmute_copy(&puloutxmrlicenselen), ::core::mem::transmute_copy(&pboutxmrlicense)).into()
}
unsafe extern "system" fn GetKeyInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMSession_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulkeyinfolen: *mut u32, pbkeyinfo: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKeyInfo(::core::mem::transmute_copy(&pulkeyinfolen), ::core::mem::transmute_copy(&pbkeyinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetStatus: GetStatus::<Identity, Impl, OFFSET>,
SetRevInfo: SetRevInfo::<Identity, Impl, OFFSET>,
SetCrl: SetCrl::<Identity, Impl, OFFSET>,
TransactMessage: TransactMessage::<Identity, Impl, OFFSET>,
GetLicense: GetLicense::<Identity, Impl, OFFSET>,
ReissueLicense: ReissueLicense::<Identity, Impl, OFFSET>,
RenewLicense: RenewLicense::<Identity, Impl, OFFSET>,
GetKeyInfo: GetKeyInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_WMDRMSession as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBDA_WMDRMTuner_Impl: Sized {
fn PurchaseEntitlement(&self, uldialogrequest: u32, bstrlanguage: &::windows_core::BSTR, ulpurchasetokenlen: u32, pbpurchasetoken: *const u8, puldescramblestatus: *mut u32, pulcapturetokenlen: *mut u32, pbcapturetoken: *mut u8) -> ::windows_core::Result<()>;
fn CancelCaptureToken(&self, ulcapturetokenlen: u32, pbcapturetoken: *const u8) -> ::windows_core::Result<()>;
fn SetPidProtection(&self, ulpid: u32, uuidkey: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetPidProtection(&self, pulpid: u32) -> ::windows_core::Result<::windows_core::GUID>;
fn SetSyncValue(&self, ulsyncvalue: u32) -> ::windows_core::Result<()>;
fn GetStartCodeProfile(&self, pulstartcodeprofilelen: *mut u32, pbstartcodeprofile: *mut u8) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBDA_WMDRMTuner {}
impl IBDA_WMDRMTuner_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>() -> IBDA_WMDRMTuner_Vtbl {
unsafe extern "system" fn PurchaseEntitlement<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldialogrequest: u32, bstrlanguage: ::std::mem::MaybeUninit<::windows_core::BSTR>, ulpurchasetokenlen: u32, pbpurchasetoken: *const u8, puldescramblestatus: *mut u32, pulcapturetokenlen: *mut u32, pbcapturetoken: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PurchaseEntitlement(::core::mem::transmute_copy(&uldialogrequest), ::core::mem::transmute(&bstrlanguage), ::core::mem::transmute_copy(&ulpurchasetokenlen), ::core::mem::transmute_copy(&pbpurchasetoken), ::core::mem::transmute_copy(&puldescramblestatus), ::core::mem::transmute_copy(&pulcapturetokenlen), ::core::mem::transmute_copy(&pbcapturetoken)).into()
}
unsafe extern "system" fn CancelCaptureToken<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcapturetokenlen: u32, pbcapturetoken: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CancelCaptureToken(::core::mem::transmute_copy(&ulcapturetokenlen), ::core::mem::transmute_copy(&pbcapturetoken)).into()
}
unsafe extern "system" fn SetPidProtection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpid: u32, uuidkey: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPidProtection(::core::mem::transmute_copy(&ulpid), ::core::mem::transmute_copy(&uuidkey)).into()
}
unsafe extern "system" fn GetPidProtection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulpid: u32, uuidkey: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPidProtection(::core::mem::transmute_copy(&pulpid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(uuidkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSyncValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulsyncvalue: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncValue(::core::mem::transmute_copy(&ulsyncvalue)).into()
}
unsafe extern "system" fn GetStartCodeProfile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBDA_WMDRMTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulstartcodeprofilelen: *mut u32, pbstartcodeprofile: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStartCodeProfile(::core::mem::transmute_copy(&pulstartcodeprofilelen), ::core::mem::transmute_copy(&pbstartcodeprofile)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PurchaseEntitlement: PurchaseEntitlement::<Identity, Impl, OFFSET>,
CancelCaptureToken: CancelCaptureToken::<Identity, Impl, OFFSET>,
SetPidProtection: SetPidProtection::<Identity, Impl, OFFSET>,
GetPidProtection: GetPidProtection::<Identity, Impl, OFFSET>,
SetSyncValue: SetSyncValue::<Identity, Impl, OFFSET>,
GetStartCodeProfile: GetStartCodeProfile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBDA_WMDRMTuner as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IBPCSatelliteTuner_Impl: Sized + IAMTuner_Impl {
fn get_DefaultSubChannelTypes(&self, pldefaultvideotype: *mut i32, pldefaultaudiotype: *mut i32) -> ::windows_core::Result<()>;
fn put_DefaultSubChannelTypes(&self, ldefaultvideotype: i32, ldefaultaudiotype: i32) -> ::windows_core::Result<()>;
fn IsTapingPermitted(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IBPCSatelliteTuner {}
#[cfg(feature = "Win32_Foundation")]
impl IBPCSatelliteTuner_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBPCSatelliteTuner_Impl, const OFFSET: isize>() -> IBPCSatelliteTuner_Vtbl {
unsafe extern "system" fn get_DefaultSubChannelTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBPCSatelliteTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pldefaultvideotype: *mut i32, pldefaultaudiotype: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_DefaultSubChannelTypes(::core::mem::transmute_copy(&pldefaultvideotype), ::core::mem::transmute_copy(&pldefaultaudiotype)).into()
}
unsafe extern "system" fn put_DefaultSubChannelTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBPCSatelliteTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ldefaultvideotype: i32, ldefaultaudiotype: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_DefaultSubChannelTypes(::core::mem::transmute_copy(&ldefaultvideotype), ::core::mem::transmute_copy(&ldefaultaudiotype)).into()
}
unsafe extern "system" fn IsTapingPermitted<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBPCSatelliteTuner_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsTapingPermitted().into()
}
Self {
base__: IAMTuner_Vtbl::new::<Identity, Impl, OFFSET>(),
get_DefaultSubChannelTypes: get_DefaultSubChannelTypes::<Identity, Impl, OFFSET>,
put_DefaultSubChannelTypes: put_DefaultSubChannelTypes::<Identity, Impl, OFFSET>,
IsTapingPermitted: IsTapingPermitted::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBPCSatelliteTuner as ::windows_core::ComInterface>::IID || iid == &<IAMTuner as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IBaseFilter_Impl: Sized + IMediaFilter_Impl {
fn EnumPins(&self) -> ::windows_core::Result<IEnumPins>;
fn FindPin(&self, id: &::windows_core::PCWSTR) -> ::windows_core::Result<IPin>;
fn QueryFilterInfo(&self, pinfo: *mut FILTER_INFO) -> ::windows_core::Result<()>;
fn JoinFilterGraph(&self, pgraph: ::core::option::Option<&IFilterGraph>, pname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn QueryVendorInfo(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IBaseFilter {}
#[cfg(feature = "Win32_System_Com")]
impl IBaseFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>() -> IBaseFilter_Vtbl {
unsafe extern "system" fn EnumPins<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumPins() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: ::windows_core::PCWSTR, pppin: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindPin(::core::mem::transmute(&id)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pppin, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryFilterInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut FILTER_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryFilterInfo(::core::mem::transmute_copy(&pinfo)).into()
}
unsafe extern "system" fn JoinFilterGraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pgraph: *mut ::core::ffi::c_void, pname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.JoinFilterGraph(::windows_core::from_raw_borrowed(&pgraph), ::core::mem::transmute(&pname)).into()
}
unsafe extern "system" fn QueryVendorInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvendorinfo: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryVendorInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvendorinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IMediaFilter_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumPins: EnumPins::<Identity, Impl, OFFSET>,
FindPin: FindPin::<Identity, Impl, OFFSET>,
QueryFilterInfo: QueryFilterInfo::<Identity, Impl, OFFSET>,
JoinFilterGraph: JoinFilterGraph::<Identity, Impl, OFFSET>,
QueryVendorInfo: QueryVendorInfo::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBaseFilter as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID || iid == &<IMediaFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBaseVideoMixer_Impl: Sized {
fn SetLeadPin(&self, ipin: i32) -> ::windows_core::Result<()>;
fn GetLeadPin(&self) -> ::windows_core::Result<i32>;
fn GetInputPinCount(&self) -> ::windows_core::Result<i32>;
fn IsUsingClock(&self) -> ::windows_core::Result<i32>;
fn SetUsingClock(&self, bvalue: i32) -> ::windows_core::Result<()>;
fn GetClockPeriod(&self) -> ::windows_core::Result<i32>;
fn SetClockPeriod(&self, bvalue: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBaseVideoMixer {}
impl IBaseVideoMixer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>() -> IBaseVideoMixer_Vtbl {
unsafe extern "system" fn SetLeadPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ipin: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLeadPin(::core::mem::transmute_copy(&ipin)).into()
}
unsafe extern "system" fn GetLeadPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipin: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetLeadPin() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pipin, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInputPinCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pipincount: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetInputPinCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pipincount, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsUsingClock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsUsingClock() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetUsingClock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bvalue: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetUsingClock(::core::mem::transmute_copy(&bvalue)).into()
}
unsafe extern "system" fn GetClockPeriod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbvalue: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetClockPeriod() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetClockPeriod<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBaseVideoMixer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bvalue: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClockPeriod(::core::mem::transmute_copy(&bvalue)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetLeadPin: SetLeadPin::<Identity, Impl, OFFSET>,
GetLeadPin: GetLeadPin::<Identity, Impl, OFFSET>,
GetInputPinCount: GetInputPinCount::<Identity, Impl, OFFSET>,
IsUsingClock: IsUsingClock::<Identity, Impl, OFFSET>,
SetUsingClock: SetUsingClock::<Identity, Impl, OFFSET>,
GetClockPeriod: GetClockPeriod::<Identity, Impl, OFFSET>,
SetClockPeriod: SetClockPeriod::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBaseVideoMixer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IBasicAudio_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SetVolume(&self, lvolume: i32) -> ::windows_core::Result<()>;
fn Volume(&self) -> ::windows_core::Result<i32>;
fn SetBalance(&self, lbalance: i32) -> ::windows_core::Result<()>;
fn Balance(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IBasicAudio {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IBasicAudio_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicAudio_Impl, const OFFSET: isize>() -> IBasicAudio_Vtbl {
unsafe extern "system" fn SetVolume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lvolume: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVolume(::core::mem::transmute_copy(&lvolume)).into()
}
unsafe extern "system" fn Volume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plvolume: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Volume() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plvolume, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBalance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lbalance: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBalance(::core::mem::transmute_copy(&lbalance)).into()
}
unsafe extern "system" fn Balance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicAudio_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plbalance: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Balance() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plbalance, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
SetVolume: SetVolume::<Identity, Impl, OFFSET>,
Volume: Volume::<Identity, Impl, OFFSET>,
SetBalance: SetBalance::<Identity, Impl, OFFSET>,
Balance: Balance::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBasicAudio as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IBasicVideo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn AvgTimePerFrame(&self) -> ::windows_core::Result<f64>;
fn BitRate(&self) -> ::windows_core::Result<i32>;
fn BitErrorRate(&self) -> ::windows_core::Result<i32>;
fn VideoWidth(&self) -> ::windows_core::Result<i32>;
fn VideoHeight(&self) -> ::windows_core::Result<i32>;
fn SetSourceLeft(&self, sourceleft: i32) -> ::windows_core::Result<()>;
fn SourceLeft(&self) -> ::windows_core::Result<i32>;
fn SetSourceWidth(&self, sourcewidth: i32) -> ::windows_core::Result<()>;
fn SourceWidth(&self) -> ::windows_core::Result<i32>;
fn SetSourceTop(&self, sourcetop: i32) -> ::windows_core::Result<()>;
fn SourceTop(&self) -> ::windows_core::Result<i32>;
fn SetSourceHeight(&self, sourceheight: i32) -> ::windows_core::Result<()>;
fn SourceHeight(&self) -> ::windows_core::Result<i32>;
fn SetDestinationLeft(&self, destinationleft: i32) -> ::windows_core::Result<()>;
fn DestinationLeft(&self) -> ::windows_core::Result<i32>;
fn SetDestinationWidth(&self, destinationwidth: i32) -> ::windows_core::Result<()>;
fn DestinationWidth(&self) -> ::windows_core::Result<i32>;
fn SetDestinationTop(&self, destinationtop: i32) -> ::windows_core::Result<()>;
fn DestinationTop(&self) -> ::windows_core::Result<i32>;
fn SetDestinationHeight(&self, destinationheight: i32) -> ::windows_core::Result<()>;
fn DestinationHeight(&self) -> ::windows_core::Result<i32>;
fn SetSourcePosition(&self, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::Result<()>;
fn GetSourcePosition(&self, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn SetDefaultSourcePosition(&self) -> ::windows_core::Result<()>;
fn SetDestinationPosition(&self, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::Result<()>;
fn GetDestinationPosition(&self, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn SetDefaultDestinationPosition(&self) -> ::windows_core::Result<()>;
fn GetVideoSize(&self, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn GetVideoPaletteEntries(&self, startindex: i32, entries: i32, pretrieved: *mut i32, ppalette: *mut i32) -> ::windows_core::Result<()>;
fn GetCurrentImage(&self, pbuffersize: *mut i32, pdibimage: *mut i32) -> ::windows_core::Result<()>;
fn IsUsingDefaultSource(&self) -> ::windows_core::Result<()>;
fn IsUsingDefaultDestination(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IBasicVideo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IBasicVideo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>() -> IBasicVideo_Vtbl {
unsafe extern "system" fn AvgTimePerFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pavgtimeperframe: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvgTimePerFrame() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pavgtimeperframe, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BitRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbitrate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BitRate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbitrate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BitErrorRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbiterrorrate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BitErrorRate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbiterrorrate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn VideoWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvideowidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VideoWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvideowidth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn VideoHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvideoheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VideoHeight() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvideoheight, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourceLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourceleft: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourceLeft(::core::mem::transmute_copy(&sourceleft)).into()
}
unsafe extern "system" fn SourceLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourceleft: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SourceLeft() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psourceleft, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourceWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourcewidth: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourceWidth(::core::mem::transmute_copy(&sourcewidth)).into()
}
unsafe extern "system" fn SourceWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcewidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SourceWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psourcewidth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourceTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourcetop: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourceTop(::core::mem::transmute_copy(&sourcetop)).into()
}
unsafe extern "system" fn SourceTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcetop: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SourceTop() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psourcetop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourceHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, sourceheight: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourceHeight(::core::mem::transmute_copy(&sourceheight)).into()
}
unsafe extern "system" fn SourceHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourceheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SourceHeight() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psourceheight, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDestinationLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, destinationleft: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDestinationLeft(::core::mem::transmute_copy(&destinationleft)).into()
}
unsafe extern "system" fn DestinationLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdestinationleft: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DestinationLeft() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdestinationleft, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDestinationWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, destinationwidth: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDestinationWidth(::core::mem::transmute_copy(&destinationwidth)).into()
}
unsafe extern "system" fn DestinationWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdestinationwidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DestinationWidth() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdestinationwidth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDestinationTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, destinationtop: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDestinationTop(::core::mem::transmute_copy(&destinationtop)).into()
}
unsafe extern "system" fn DestinationTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdestinationtop: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DestinationTop() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdestinationtop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDestinationHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, destinationheight: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDestinationHeight(::core::mem::transmute_copy(&destinationheight)).into()
}
unsafe extern "system" fn DestinationHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdestinationheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DestinationHeight() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdestinationheight, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourcePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourcePosition(::core::mem::transmute_copy(&left), ::core::mem::transmute_copy(&top), ::core::mem::transmute_copy(&width), ::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn GetSourcePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSourcePosition(::core::mem::transmute_copy(&pleft), ::core::mem::transmute_copy(&ptop), ::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn SetDefaultSourcePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultSourcePosition().into()
}
unsafe extern "system" fn SetDestinationPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDestinationPosition(::core::mem::transmute_copy(&left), ::core::mem::transmute_copy(&top), ::core::mem::transmute_copy(&width), ::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn GetDestinationPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDestinationPosition(::core::mem::transmute_copy(&pleft), ::core::mem::transmute_copy(&ptop), ::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn SetDefaultDestinationPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultDestinationPosition().into()
}
unsafe extern "system" fn GetVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoSize(::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn GetVideoPaletteEntries<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, startindex: i32, entries: i32, pretrieved: *mut i32, ppalette: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoPaletteEntries(::core::mem::transmute_copy(&startindex), ::core::mem::transmute_copy(&entries), ::core::mem::transmute_copy(&pretrieved), ::core::mem::transmute_copy(&ppalette)).into()
}
unsafe extern "system" fn GetCurrentImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbuffersize: *mut i32, pdibimage: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentImage(::core::mem::transmute_copy(&pbuffersize), ::core::mem::transmute_copy(&pdibimage)).into()
}
unsafe extern "system" fn IsUsingDefaultSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsUsingDefaultSource().into()
}
unsafe extern "system" fn IsUsingDefaultDestination<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsUsingDefaultDestination().into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
AvgTimePerFrame: AvgTimePerFrame::<Identity, Impl, OFFSET>,
BitRate: BitRate::<Identity, Impl, OFFSET>,
BitErrorRate: BitErrorRate::<Identity, Impl, OFFSET>,
VideoWidth: VideoWidth::<Identity, Impl, OFFSET>,
VideoHeight: VideoHeight::<Identity, Impl, OFFSET>,
SetSourceLeft: SetSourceLeft::<Identity, Impl, OFFSET>,
SourceLeft: SourceLeft::<Identity, Impl, OFFSET>,
SetSourceWidth: SetSourceWidth::<Identity, Impl, OFFSET>,
SourceWidth: SourceWidth::<Identity, Impl, OFFSET>,
SetSourceTop: SetSourceTop::<Identity, Impl, OFFSET>,
SourceTop: SourceTop::<Identity, Impl, OFFSET>,
SetSourceHeight: SetSourceHeight::<Identity, Impl, OFFSET>,
SourceHeight: SourceHeight::<Identity, Impl, OFFSET>,
SetDestinationLeft: SetDestinationLeft::<Identity, Impl, OFFSET>,
DestinationLeft: DestinationLeft::<Identity, Impl, OFFSET>,
SetDestinationWidth: SetDestinationWidth::<Identity, Impl, OFFSET>,
DestinationWidth: DestinationWidth::<Identity, Impl, OFFSET>,
SetDestinationTop: SetDestinationTop::<Identity, Impl, OFFSET>,
DestinationTop: DestinationTop::<Identity, Impl, OFFSET>,
SetDestinationHeight: SetDestinationHeight::<Identity, Impl, OFFSET>,
DestinationHeight: DestinationHeight::<Identity, Impl, OFFSET>,
SetSourcePosition: SetSourcePosition::<Identity, Impl, OFFSET>,
GetSourcePosition: GetSourcePosition::<Identity, Impl, OFFSET>,
SetDefaultSourcePosition: SetDefaultSourcePosition::<Identity, Impl, OFFSET>,
SetDestinationPosition: SetDestinationPosition::<Identity, Impl, OFFSET>,
GetDestinationPosition: GetDestinationPosition::<Identity, Impl, OFFSET>,
SetDefaultDestinationPosition: SetDefaultDestinationPosition::<Identity, Impl, OFFSET>,
GetVideoSize: GetVideoSize::<Identity, Impl, OFFSET>,
GetVideoPaletteEntries: GetVideoPaletteEntries::<Identity, Impl, OFFSET>,
GetCurrentImage: GetCurrentImage::<Identity, Impl, OFFSET>,
IsUsingDefaultSource: IsUsingDefaultSource::<Identity, Impl, OFFSET>,
IsUsingDefaultDestination: IsUsingDefaultDestination::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBasicVideo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IBasicVideo2_Impl: Sized + IBasicVideo_Impl {
fn GetPreferredAspectRatio(&self, plaspectx: *mut i32, plaspecty: *mut i32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IBasicVideo2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IBasicVideo2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo2_Impl, const OFFSET: isize>() -> IBasicVideo2_Vtbl {
unsafe extern "system" fn GetPreferredAspectRatio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBasicVideo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plaspectx: *mut i32, plaspecty: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPreferredAspectRatio(::core::mem::transmute_copy(&plaspectx), ::core::mem::transmute_copy(&plaspecty)).into()
}
Self { base__: IBasicVideo_Vtbl::new::<Identity, Impl, OFFSET>(), GetPreferredAspectRatio: GetPreferredAspectRatio::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBasicVideo2 as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IBasicVideo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBroadcastEvent_Impl: Sized {
fn Fire(&self, eventid: &::windows_core::GUID) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBroadcastEvent {}
impl IBroadcastEvent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBroadcastEvent_Impl, const OFFSET: isize>() -> IBroadcastEvent_Vtbl {
unsafe extern "system" fn Fire<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBroadcastEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventid: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Fire(::core::mem::transmute(&eventid)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Fire: Fire::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBroadcastEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBroadcastEventEx_Impl: Sized + IBroadcastEvent_Impl {
fn FireEx(&self, eventid: &::windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBroadcastEventEx {}
impl IBroadcastEventEx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBroadcastEventEx_Impl, const OFFSET: isize>() -> IBroadcastEventEx_Vtbl {
unsafe extern "system" fn FireEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBroadcastEventEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventid: ::windows_core::GUID, param1: u32, param2: u32, param3: u32, param4: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FireEx(::core::mem::transmute(&eventid), ::core::mem::transmute_copy(&param1), ::core::mem::transmute_copy(&param2), ::core::mem::transmute_copy(&param3), ::core::mem::transmute_copy(&param4)).into()
}
Self { base__: IBroadcastEvent_Vtbl::new::<Identity, Impl, OFFSET>(), FireEx: FireEx::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBroadcastEventEx as ::windows_core::ComInterface>::IID || iid == &<IBroadcastEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IBufferingTime_Impl: Sized {
fn GetBufferingTime(&self, pdwmilliseconds: *mut u32) -> ::windows_core::Result<()>;
fn SetBufferingTime(&self, dwmilliseconds: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IBufferingTime {}
impl IBufferingTime_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBufferingTime_Impl, const OFFSET: isize>() -> IBufferingTime_Vtbl {
unsafe extern "system" fn GetBufferingTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBufferingTime_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwmilliseconds: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBufferingTime(::core::mem::transmute_copy(&pdwmilliseconds)).into()
}
unsafe extern "system" fn SetBufferingTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IBufferingTime_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmilliseconds: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBufferingTime(::core::mem::transmute_copy(&dwmilliseconds)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetBufferingTime: GetBufferingTime::<Identity, Impl, OFFSET>,
SetBufferingTime: SetBufferingTime::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IBufferingTime as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait ICCSubStreamFiltering_Impl: Sized {
fn SubstreamTypes(&self) -> ::windows_core::Result<i32>;
fn SetSubstreamTypes(&self, types: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICCSubStreamFiltering {}
impl ICCSubStreamFiltering_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICCSubStreamFiltering_Impl, const OFFSET: isize>() -> ICCSubStreamFiltering_Vtbl {
unsafe extern "system" fn SubstreamTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICCSubStreamFiltering_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptypes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SubstreamTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ptypes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSubstreamTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICCSubStreamFiltering_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, types: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSubstreamTypes(::core::mem::transmute_copy(&types)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SubstreamTypes: SubstreamTypes::<Identity, Impl, OFFSET>,
SetSubstreamTypes: SetSubstreamTypes::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICCSubStreamFiltering as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait ICameraControl_Impl: Sized {
fn get_Exposure(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Exposure(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Exposure(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Focus(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Focus(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Focus(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Iris(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Iris(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Iris(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Zoom(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Zoom(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Zoom(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_FocalLengths(&self, plocularfocallength: *mut i32, plobjectivefocallengthmin: *mut i32, plobjectivefocallengthmax: *mut i32) -> ::windows_core::Result<()>;
fn get_Pan(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Pan(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Pan(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Tilt(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Tilt(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Tilt(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_PanTilt(&self, ppanvalue: *mut i32, ptiltvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_PanTilt(&self, panvalue: i32, tiltvalue: i32, flags: i32) -> ::windows_core::Result<()>;
fn get_Roll(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Roll(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Roll(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_ExposureRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_ExposureRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_ExposureRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_FocusRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_FocusRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_FocusRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_IrisRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_IrisRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_IrisRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_ZoomRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_ZoomRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_ZoomRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_PanRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_PanRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn get_TiltRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_TiltRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_TiltRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_PanTiltRelative(&self, ppanvalue: *mut i32, ptiltvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_PanTiltRelative(&self, panvalue: i32, tiltvalue: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_PanRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_RollRelative(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_RollRelative(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_RollRelative(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_ScanMode(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_ScanMode(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn get_PrivacyMode(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_PrivacyMode(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ICameraControl {}
impl ICameraControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>() -> ICameraControl_Vtbl {
unsafe extern "system" fn get_Exposure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Exposure(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Exposure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Exposure(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Exposure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Exposure(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Focus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Focus(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Focus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Focus(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Focus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Focus(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Iris<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Iris(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Iris<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Iris(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Iris<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Iris(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Zoom<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Zoom(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Zoom<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Zoom(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Zoom<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Zoom(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_FocalLengths<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plocularfocallength: *mut i32, plobjectivefocallengthmin: *mut i32, plobjectivefocallengthmax: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_FocalLengths(::core::mem::transmute_copy(&plocularfocallength), ::core::mem::transmute_copy(&plobjectivefocallengthmin), ::core::mem::transmute_copy(&plobjectivefocallengthmax)).into()
}
unsafe extern "system" fn get_Pan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Pan(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Pan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Pan(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Pan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Pan(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Tilt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Tilt(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Tilt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Tilt(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Tilt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Tilt(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_PanTilt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppanvalue: *mut i32, ptiltvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PanTilt(::core::mem::transmute_copy(&ppanvalue), ::core::mem::transmute_copy(&ptiltvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_PanTilt<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, panvalue: i32, tiltvalue: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_PanTilt(::core::mem::transmute_copy(&panvalue), ::core::mem::transmute_copy(&tiltvalue), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn get_Roll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Roll(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Roll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Roll(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Roll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Roll(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_ExposureRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_ExposureRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_ExposureRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_ExposureRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_ExposureRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_ExposureRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_FocusRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_FocusRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_FocusRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_FocusRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_FocusRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_FocusRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_IrisRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_IrisRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_IrisRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_IrisRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_IrisRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_IrisRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_ZoomRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_ZoomRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_ZoomRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_ZoomRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_ZoomRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_ZoomRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_PanRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PanRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_PanRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_PanRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn get_TiltRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_TiltRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_TiltRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_TiltRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_TiltRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_TiltRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_PanTiltRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppanvalue: *mut i32, ptiltvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PanTiltRelative(::core::mem::transmute_copy(&ppanvalue), ::core::mem::transmute_copy(&ptiltvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_PanTiltRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, panvalue: i32, tiltvalue: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_PanTiltRelative(::core::mem::transmute_copy(&panvalue), ::core::mem::transmute_copy(&tiltvalue), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_PanRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_PanRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_RollRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_RollRelative(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_RollRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_RollRelative(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_RollRelative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_RollRelative(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_ScanMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_ScanMode(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_ScanMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_ScanMode(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn get_PrivacyMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PrivacyMode(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_PrivacyMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICameraControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_PrivacyMode(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_Exposure: get_Exposure::<Identity, Impl, OFFSET>,
put_Exposure: put_Exposure::<Identity, Impl, OFFSET>,
getRange_Exposure: getRange_Exposure::<Identity, Impl, OFFSET>,
get_Focus: get_Focus::<Identity, Impl, OFFSET>,
put_Focus: put_Focus::<Identity, Impl, OFFSET>,
getRange_Focus: getRange_Focus::<Identity, Impl, OFFSET>,
get_Iris: get_Iris::<Identity, Impl, OFFSET>,
put_Iris: put_Iris::<Identity, Impl, OFFSET>,
getRange_Iris: getRange_Iris::<Identity, Impl, OFFSET>,
get_Zoom: get_Zoom::<Identity, Impl, OFFSET>,
put_Zoom: put_Zoom::<Identity, Impl, OFFSET>,
getRange_Zoom: getRange_Zoom::<Identity, Impl, OFFSET>,
get_FocalLengths: get_FocalLengths::<Identity, Impl, OFFSET>,
get_Pan: get_Pan::<Identity, Impl, OFFSET>,
put_Pan: put_Pan::<Identity, Impl, OFFSET>,
getRange_Pan: getRange_Pan::<Identity, Impl, OFFSET>,
get_Tilt: get_Tilt::<Identity, Impl, OFFSET>,
put_Tilt: put_Tilt::<Identity, Impl, OFFSET>,
getRange_Tilt: getRange_Tilt::<Identity, Impl, OFFSET>,
get_PanTilt: get_PanTilt::<Identity, Impl, OFFSET>,
put_PanTilt: put_PanTilt::<Identity, Impl, OFFSET>,
get_Roll: get_Roll::<Identity, Impl, OFFSET>,
put_Roll: put_Roll::<Identity, Impl, OFFSET>,
getRange_Roll: getRange_Roll::<Identity, Impl, OFFSET>,
get_ExposureRelative: get_ExposureRelative::<Identity, Impl, OFFSET>,
put_ExposureRelative: put_ExposureRelative::<Identity, Impl, OFFSET>,
getRange_ExposureRelative: getRange_ExposureRelative::<Identity, Impl, OFFSET>,
get_FocusRelative: get_FocusRelative::<Identity, Impl, OFFSET>,
put_FocusRelative: put_FocusRelative::<Identity, Impl, OFFSET>,
getRange_FocusRelative: getRange_FocusRelative::<Identity, Impl, OFFSET>,
get_IrisRelative: get_IrisRelative::<Identity, Impl, OFFSET>,
put_IrisRelative: put_IrisRelative::<Identity, Impl, OFFSET>,
getRange_IrisRelative: getRange_IrisRelative::<Identity, Impl, OFFSET>,
get_ZoomRelative: get_ZoomRelative::<Identity, Impl, OFFSET>,
put_ZoomRelative: put_ZoomRelative::<Identity, Impl, OFFSET>,
getRange_ZoomRelative: getRange_ZoomRelative::<Identity, Impl, OFFSET>,
get_PanRelative: get_PanRelative::<Identity, Impl, OFFSET>,
put_PanRelative: put_PanRelative::<Identity, Impl, OFFSET>,
get_TiltRelative: get_TiltRelative::<Identity, Impl, OFFSET>,
put_TiltRelative: put_TiltRelative::<Identity, Impl, OFFSET>,
getRange_TiltRelative: getRange_TiltRelative::<Identity, Impl, OFFSET>,
get_PanTiltRelative: get_PanTiltRelative::<Identity, Impl, OFFSET>,
put_PanTiltRelative: put_PanTiltRelative::<Identity, Impl, OFFSET>,
getRange_PanRelative: getRange_PanRelative::<Identity, Impl, OFFSET>,
get_RollRelative: get_RollRelative::<Identity, Impl, OFFSET>,
put_RollRelative: put_RollRelative::<Identity, Impl, OFFSET>,
getRange_RollRelative: getRange_RollRelative::<Identity, Impl, OFFSET>,
get_ScanMode: get_ScanMode::<Identity, Impl, OFFSET>,
put_ScanMode: put_ScanMode::<Identity, Impl, OFFSET>,
get_PrivacyMode: get_PrivacyMode::<Identity, Impl, OFFSET>,
put_PrivacyMode: put_PrivacyMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICameraControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ICaptureGraphBuilder_Impl: Sized {
fn SetFiltergraph(&self, pfg: ::core::option::Option<&IGraphBuilder>) -> ::windows_core::Result<()>;
fn GetFiltergraph(&self) -> ::windows_core::Result<IGraphBuilder>;
fn SetOutputFileName(&self, ptype: *const ::windows_core::GUID, lpstrfile: &::windows_core::PCWSTR, ppf: *mut ::core::option::Option<IBaseFilter>, ppsink: *mut ::core::option::Option<IFileSinkFilter>) -> ::windows_core::Result<()>;
fn FindInterface(&self, pcategory: *const ::windows_core::GUID, pf: ::core::option::Option<&IBaseFilter>, riid: *const ::windows_core::GUID, ppint: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn RenderStream(&self, pcategory: *const ::windows_core::GUID, psource: ::core::option::Option<&::windows_core::IUnknown>, pfcompressor: ::core::option::Option<&IBaseFilter>, pfrenderer: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn ControlStream(&self, pcategory: *const ::windows_core::GUID, pfilter: ::core::option::Option<&IBaseFilter>, pstart: *const i64, pstop: *const i64, wstartcookie: u16, wstopcookie: u16) -> ::windows_core::Result<()>;
fn AllocCapFile(&self, lpstr: &::windows_core::PCWSTR, dwlsize: u64) -> ::windows_core::Result<()>;
fn CopyCaptureFile(&self, lpwstrold: &::windows_core::PCWSTR, lpwstrnew: &::windows_core::PCWSTR, fallowescabort: i32, pcallback: ::core::option::Option<&IAMCopyCaptureFileProgress>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ICaptureGraphBuilder {}
#[cfg(feature = "Win32_System_Com")]
impl ICaptureGraphBuilder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>() -> ICaptureGraphBuilder_Vtbl {
unsafe extern "system" fn SetFiltergraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfg: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFiltergraph(::windows_core::from_raw_borrowed(&pfg)).into()
}
unsafe extern "system" fn GetFiltergraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfg: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFiltergraph() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptype: *const ::windows_core::GUID, lpstrfile: ::windows_core::PCWSTR, ppf: *mut *mut ::core::ffi::c_void, ppsink: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputFileName(::core::mem::transmute_copy(&ptype), ::core::mem::transmute(&lpstrfile), ::core::mem::transmute_copy(&ppf), ::core::mem::transmute_copy(&ppsink)).into()
}
unsafe extern "system" fn FindInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, pf: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindInterface(::core::mem::transmute_copy(&pcategory), ::windows_core::from_raw_borrowed(&pf), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppint)).into()
}
unsafe extern "system" fn RenderStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, psource: *mut ::core::ffi::c_void, pfcompressor: *mut ::core::ffi::c_void, pfrenderer: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderStream(::core::mem::transmute_copy(&pcategory), ::windows_core::from_raw_borrowed(&psource), ::windows_core::from_raw_borrowed(&pfcompressor), ::windows_core::from_raw_borrowed(&pfrenderer)).into()
}
unsafe extern "system" fn ControlStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, pfilter: *mut ::core::ffi::c_void, pstart: *const i64, pstop: *const i64, wstartcookie: u16, wstopcookie: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlStream(::core::mem::transmute_copy(&pcategory), ::windows_core::from_raw_borrowed(&pfilter), ::core::mem::transmute_copy(&pstart), ::core::mem::transmute_copy(&pstop), ::core::mem::transmute_copy(&wstartcookie), ::core::mem::transmute_copy(&wstopcookie)).into()
}
unsafe extern "system" fn AllocCapFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpstr: ::windows_core::PCWSTR, dwlsize: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllocCapFile(::core::mem::transmute(&lpstr), ::core::mem::transmute_copy(&dwlsize)).into()
}
unsafe extern "system" fn CopyCaptureFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwstrold: ::windows_core::PCWSTR, lpwstrnew: ::windows_core::PCWSTR, fallowescabort: i32, pcallback: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CopyCaptureFile(::core::mem::transmute(&lpwstrold), ::core::mem::transmute(&lpwstrnew), ::core::mem::transmute_copy(&fallowescabort), ::windows_core::from_raw_borrowed(&pcallback)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFiltergraph: SetFiltergraph::<Identity, Impl, OFFSET>,
GetFiltergraph: GetFiltergraph::<Identity, Impl, OFFSET>,
SetOutputFileName: SetOutputFileName::<Identity, Impl, OFFSET>,
FindInterface: FindInterface::<Identity, Impl, OFFSET>,
RenderStream: RenderStream::<Identity, Impl, OFFSET>,
ControlStream: ControlStream::<Identity, Impl, OFFSET>,
AllocCapFile: AllocCapFile::<Identity, Impl, OFFSET>,
CopyCaptureFile: CopyCaptureFile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICaptureGraphBuilder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait ICaptureGraphBuilder2_Impl: Sized {
fn SetFiltergraph(&self, pfg: ::core::option::Option<&IGraphBuilder>) -> ::windows_core::Result<()>;
fn GetFiltergraph(&self) -> ::windows_core::Result<IGraphBuilder>;
fn SetOutputFileName(&self, ptype: *const ::windows_core::GUID, lpstrfile: &::windows_core::PCWSTR, ppf: *mut ::core::option::Option<IBaseFilter>, ppsink: *mut ::core::option::Option<IFileSinkFilter>) -> ::windows_core::Result<()>;
fn FindInterface(&self, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, pf: ::core::option::Option<&IBaseFilter>, riid: *const ::windows_core::GUID, ppint: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn RenderStream(&self, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, psource: ::core::option::Option<&::windows_core::IUnknown>, pfcompressor: ::core::option::Option<&IBaseFilter>, pfrenderer: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn ControlStream(&self, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, pfilter: ::core::option::Option<&IBaseFilter>, pstart: *const i64, pstop: *const i64, wstartcookie: u16, wstopcookie: u16) -> ::windows_core::Result<()>;
fn AllocCapFile(&self, lpstr: &::windows_core::PCWSTR, dwlsize: u64) -> ::windows_core::Result<()>;
fn CopyCaptureFile(&self, lpwstrold: &::windows_core::PCWSTR, lpwstrnew: &::windows_core::PCWSTR, fallowescabort: i32, pcallback: ::core::option::Option<&IAMCopyCaptureFileProgress>) -> ::windows_core::Result<()>;
fn FindPin(&self, psource: ::core::option::Option<&::windows_core::IUnknown>, pindir: PIN_DIRECTION, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, funconnected: super::super::Foundation::BOOL, num: i32) -> ::windows_core::Result<IPin>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for ICaptureGraphBuilder2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ICaptureGraphBuilder2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>() -> ICaptureGraphBuilder2_Vtbl {
unsafe extern "system" fn SetFiltergraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfg: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFiltergraph(::windows_core::from_raw_borrowed(&pfg)).into()
}
unsafe extern "system" fn GetFiltergraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppfg: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFiltergraph() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptype: *const ::windows_core::GUID, lpstrfile: ::windows_core::PCWSTR, ppf: *mut *mut ::core::ffi::c_void, ppsink: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputFileName(::core::mem::transmute_copy(&ptype), ::core::mem::transmute(&lpstrfile), ::core::mem::transmute_copy(&ppf), ::core::mem::transmute_copy(&ppsink)).into()
}
unsafe extern "system" fn FindInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, pf: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppint: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FindInterface(::core::mem::transmute_copy(&pcategory), ::core::mem::transmute_copy(&ptype), ::windows_core::from_raw_borrowed(&pf), ::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppint)).into()
}
unsafe extern "system" fn RenderStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, psource: *mut ::core::ffi::c_void, pfcompressor: *mut ::core::ffi::c_void, pfrenderer: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderStream(::core::mem::transmute_copy(&pcategory), ::core::mem::transmute_copy(&ptype), ::windows_core::from_raw_borrowed(&psource), ::windows_core::from_raw_borrowed(&pfcompressor), ::windows_core::from_raw_borrowed(&pfrenderer)).into()
}
unsafe extern "system" fn ControlStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, pfilter: *mut ::core::ffi::c_void, pstart: *const i64, pstop: *const i64, wstartcookie: u16, wstopcookie: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ControlStream(::core::mem::transmute_copy(&pcategory), ::core::mem::transmute_copy(&ptype), ::windows_core::from_raw_borrowed(&pfilter), ::core::mem::transmute_copy(&pstart), ::core::mem::transmute_copy(&pstop), ::core::mem::transmute_copy(&wstartcookie), ::core::mem::transmute_copy(&wstopcookie)).into()
}
unsafe extern "system" fn AllocCapFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpstr: ::windows_core::PCWSTR, dwlsize: u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllocCapFile(::core::mem::transmute(&lpstr), ::core::mem::transmute_copy(&dwlsize)).into()
}
unsafe extern "system" fn CopyCaptureFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwstrold: ::windows_core::PCWSTR, lpwstrnew: ::windows_core::PCWSTR, fallowescabort: i32, pcallback: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CopyCaptureFile(::core::mem::transmute(&lpwstrold), ::core::mem::transmute(&lpwstrnew), ::core::mem::transmute_copy(&fallowescabort), ::windows_core::from_raw_borrowed(&pcallback)).into()
}
unsafe extern "system" fn FindPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICaptureGraphBuilder2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psource: *mut ::core::ffi::c_void, pindir: PIN_DIRECTION, pcategory: *const ::windows_core::GUID, ptype: *const ::windows_core::GUID, funconnected: super::super::Foundation::BOOL, num: i32, pppin: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindPin(::windows_core::from_raw_borrowed(&psource), ::core::mem::transmute_copy(&pindir), ::core::mem::transmute_copy(&pcategory), ::core::mem::transmute_copy(&ptype), ::core::mem::transmute_copy(&funconnected), ::core::mem::transmute_copy(&num)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pppin, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFiltergraph: SetFiltergraph::<Identity, Impl, OFFSET>,
GetFiltergraph: GetFiltergraph::<Identity, Impl, OFFSET>,
SetOutputFileName: SetOutputFileName::<Identity, Impl, OFFSET>,
FindInterface: FindInterface::<Identity, Impl, OFFSET>,
RenderStream: RenderStream::<Identity, Impl, OFFSET>,
ControlStream: ControlStream::<Identity, Impl, OFFSET>,
AllocCapFile: AllocCapFile::<Identity, Impl, OFFSET>,
CopyCaptureFile: CopyCaptureFile::<Identity, Impl, OFFSET>,
FindPin: FindPin::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICaptureGraphBuilder2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_WindowsMediaFormat\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
pub trait IConfigAsfWriter_Impl: Sized {
fn ConfigureFilterUsingProfileId(&self, dwprofileid: u32) -> ::windows_core::Result<()>;
fn GetCurrentProfileId(&self) -> ::windows_core::Result<u32>;
fn ConfigureFilterUsingProfileGuid(&self, guidprofile: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetCurrentProfileGuid(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn ConfigureFilterUsingProfile(&self, pprofile: ::core::option::Option<&super::WindowsMediaFormat::IWMProfile>) -> ::windows_core::Result<()>;
fn GetCurrentProfile(&self) -> ::windows_core::Result<super::WindowsMediaFormat::IWMProfile>;
fn SetIndexMode(&self, bindexfile: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetIndexMode(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl ::windows_core::RuntimeName for IConfigAsfWriter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl IConfigAsfWriter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>() -> IConfigAsfWriter_Vtbl {
unsafe extern "system" fn ConfigureFilterUsingProfileId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwprofileid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConfigureFilterUsingProfileId(::core::mem::transmute_copy(&dwprofileid)).into()
}
unsafe extern "system" fn GetCurrentProfileId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwprofileid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProfileId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwprofileid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConfigureFilterUsingProfileGuid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidprofile: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConfigureFilterUsingProfileGuid(::core::mem::transmute_copy(&guidprofile)).into()
}
unsafe extern "system" fn GetCurrentProfileGuid<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprofileguid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProfileGuid() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pprofileguid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConfigureFilterUsingProfile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprofile: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConfigureFilterUsingProfile(::windows_core::from_raw_borrowed(&pprofile)).into()
}
unsafe extern "system" fn GetCurrentProfile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppprofile: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentProfile() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppprofile, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIndexMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bindexfile: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIndexMode(::core::mem::transmute_copy(&bindexfile)).into()
}
unsafe extern "system" fn GetIndexMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbindexfile: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetIndexMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbindexfile, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
ConfigureFilterUsingProfileId: ConfigureFilterUsingProfileId::<Identity, Impl, OFFSET>,
GetCurrentProfileId: GetCurrentProfileId::<Identity, Impl, OFFSET>,
ConfigureFilterUsingProfileGuid: ConfigureFilterUsingProfileGuid::<Identity, Impl, OFFSET>,
GetCurrentProfileGuid: GetCurrentProfileGuid::<Identity, Impl, OFFSET>,
ConfigureFilterUsingProfile: ConfigureFilterUsingProfile::<Identity, Impl, OFFSET>,
GetCurrentProfile: GetCurrentProfile::<Identity, Impl, OFFSET>,
SetIndexMode: SetIndexMode::<Identity, Impl, OFFSET>,
GetIndexMode: GetIndexMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IConfigAsfWriter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_WindowsMediaFormat\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
pub trait IConfigAsfWriter2_Impl: Sized + IConfigAsfWriter_Impl {
fn StreamNumFromPin(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<u16>;
fn SetParam(&self, dwparam: u32, dwparam1: u32, dwparam2: u32) -> ::windows_core::Result<()>;
fn GetParam(&self, dwparam: u32, pdwparam1: *mut u32, pdwparam2: *mut u32) -> ::windows_core::Result<()>;
fn ResetMultiPassState(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl ::windows_core::RuntimeName for IConfigAsfWriter2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl IConfigAsfWriter2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter2_Impl, const OFFSET: isize>() -> IConfigAsfWriter2_Vtbl {
unsafe extern "system" fn StreamNumFromPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, pwstreamnum: *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StreamNumFromPin(::windows_core::from_raw_borrowed(&ppin)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwstreamnum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparam: u32, dwparam1: u32, dwparam2: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParam(::core::mem::transmute_copy(&dwparam), ::core::mem::transmute_copy(&dwparam1), ::core::mem::transmute_copy(&dwparam2)).into()
}
unsafe extern "system" fn GetParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparam: u32, pdwparam1: *mut u32, pdwparam2: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParam(::core::mem::transmute_copy(&dwparam), ::core::mem::transmute_copy(&pdwparam1), ::core::mem::transmute_copy(&pdwparam2)).into()
}
unsafe extern "system" fn ResetMultiPassState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAsfWriter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ResetMultiPassState().into()
}
Self {
base__: IConfigAsfWriter_Vtbl::new::<Identity, Impl, OFFSET>(),
StreamNumFromPin: StreamNumFromPin::<Identity, Impl, OFFSET>,
SetParam: SetParam::<Identity, Impl, OFFSET>,
GetParam: GetParam::<Identity, Impl, OFFSET>,
ResetMultiPassState: ResetMultiPassState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IConfigAsfWriter2 as ::windows_core::ComInterface>::IID || iid == &<IConfigAsfWriter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IConfigAviMux_Impl: Sized {
fn SetMasterStream(&self, istream: i32) -> ::windows_core::Result<()>;
fn GetMasterStream(&self) -> ::windows_core::Result<i32>;
fn SetOutputCompatibilityIndex(&self, foldindex: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetOutputCompatibilityIndex(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IConfigAviMux {}
#[cfg(feature = "Win32_Foundation")]
impl IConfigAviMux_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAviMux_Impl, const OFFSET: isize>() -> IConfigAviMux_Vtbl {
unsafe extern "system" fn SetMasterStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAviMux_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, istream: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMasterStream(::core::mem::transmute_copy(&istream)).into()
}
unsafe extern "system" fn GetMasterStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAviMux_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstream: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMasterStream() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputCompatibilityIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAviMux_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, foldindex: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputCompatibilityIndex(::core::mem::transmute_copy(&foldindex)).into()
}
unsafe extern "system" fn GetOutputCompatibilityIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigAviMux_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfoldindex: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputCompatibilityIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfoldindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetMasterStream: SetMasterStream::<Identity, Impl, OFFSET>,
GetMasterStream: GetMasterStream::<Identity, Impl, OFFSET>,
SetOutputCompatibilityIndex: SetOutputCompatibilityIndex::<Identity, Impl, OFFSET>,
GetOutputCompatibilityIndex: GetOutputCompatibilityIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IConfigAviMux as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IConfigInterleaving_Impl: Sized {
fn SetMode(&self, mode: InterleavingMode) -> ::windows_core::Result<()>;
fn Mode(&self) -> ::windows_core::Result<InterleavingMode>;
fn put_Interleaving(&self, prtinterleave: *const i64, prtpreroll: *const i64) -> ::windows_core::Result<()>;
fn get_Interleaving(&self, prtinterleave: *mut i64, prtpreroll: *mut i64) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IConfigInterleaving {}
impl IConfigInterleaving_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigInterleaving_Impl, const OFFSET: isize>() -> IConfigInterleaving_Vtbl {
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigInterleaving_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: InterleavingMode) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn Mode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigInterleaving_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut InterleavingMode) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Mode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn put_Interleaving<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigInterleaving_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtinterleave: *const i64, prtpreroll: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Interleaving(::core::mem::transmute_copy(&prtinterleave), ::core::mem::transmute_copy(&prtpreroll)).into()
}
unsafe extern "system" fn get_Interleaving<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IConfigInterleaving_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtinterleave: *mut i64, prtpreroll: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Interleaving(::core::mem::transmute_copy(&prtinterleave), ::core::mem::transmute_copy(&prtpreroll)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetMode: SetMode::<Identity, Impl, OFFSET>,
Mode: Mode::<Identity, Impl, OFFSET>,
put_Interleaving: put_Interleaving::<Identity, Impl, OFFSET>,
get_Interleaving: get_Interleaving::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IConfigInterleaving as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait ICreateDevEnum_Impl: Sized {
fn CreateClassEnumerator(&self, clsiddeviceclass: *const ::windows_core::GUID, ppenummoniker: *mut ::core::option::Option<super::super::System::Com::IEnumMoniker>, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for ICreateDevEnum {}
#[cfg(feature = "Win32_System_Com")]
impl ICreateDevEnum_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateDevEnum_Impl, const OFFSET: isize>() -> ICreateDevEnum_Vtbl {
unsafe extern "system" fn CreateClassEnumerator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ICreateDevEnum_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsiddeviceclass: *const ::windows_core::GUID, ppenummoniker: *mut *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateClassEnumerator(::core::mem::transmute_copy(&clsiddeviceclass), ::core::mem::transmute_copy(&ppenummoniker), ::core::mem::transmute_copy(&dwflags)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), CreateClassEnumerator: CreateClassEnumerator::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ICreateDevEnum as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IDDrawExclModeVideo_Impl: Sized {
fn SetDDrawObject(&self, pddrawobject: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw>) -> ::windows_core::Result<()>;
fn GetDDrawObject(&self, ppddrawobject: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDraw>, pbusingexternal: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetDDrawSurface(&self, pddrawsurface: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface>) -> ::windows_core::Result<()>;
fn GetDDrawSurface(&self, ppddrawsurface: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawSurface>, pbusingexternal: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetDrawParameters(&self, prcsource: *const super::super::Foundation::RECT, prctarget: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn GetNativeVideoProps(&self, pdwvideowidth: *mut u32, pdwvideoheight: *mut u32, pdwpictaspectratiox: *mut u32, pdwpictaspectratioy: *mut u32) -> ::windows_core::Result<()>;
fn SetCallbackInterface(&self, pcallback: ::core::option::Option<&IDDrawExclModeVideoCallback>, dwflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IDDrawExclModeVideo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IDDrawExclModeVideo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>() -> IDDrawExclModeVideo_Vtbl {
unsafe extern "system" fn SetDDrawObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pddrawobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDDrawObject(::windows_core::from_raw_borrowed(&pddrawobject)).into()
}
unsafe extern "system" fn GetDDrawObject<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppddrawobject: *mut *mut ::core::ffi::c_void, pbusingexternal: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDDrawObject(::core::mem::transmute_copy(&ppddrawobject), ::core::mem::transmute_copy(&pbusingexternal)).into()
}
unsafe extern "system" fn SetDDrawSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pddrawsurface: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDDrawSurface(::windows_core::from_raw_borrowed(&pddrawsurface)).into()
}
unsafe extern "system" fn GetDDrawSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppddrawsurface: *mut *mut ::core::ffi::c_void, pbusingexternal: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDDrawSurface(::core::mem::transmute_copy(&ppddrawsurface), ::core::mem::transmute_copy(&pbusingexternal)).into()
}
unsafe extern "system" fn SetDrawParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prcsource: *const super::super::Foundation::RECT, prctarget: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDrawParameters(::core::mem::transmute_copy(&prcsource), ::core::mem::transmute_copy(&prctarget)).into()
}
unsafe extern "system" fn GetNativeVideoProps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwvideowidth: *mut u32, pdwvideoheight: *mut u32, pdwpictaspectratiox: *mut u32, pdwpictaspectratioy: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNativeVideoProps(::core::mem::transmute_copy(&pdwvideowidth), ::core::mem::transmute_copy(&pdwvideoheight), ::core::mem::transmute_copy(&pdwpictaspectratiox), ::core::mem::transmute_copy(&pdwpictaspectratioy)).into()
}
unsafe extern "system" fn SetCallbackInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcallback: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCallbackInterface(::windows_core::from_raw_borrowed(&pcallback), ::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDDrawObject: SetDDrawObject::<Identity, Impl, OFFSET>,
GetDDrawObject: GetDDrawObject::<Identity, Impl, OFFSET>,
SetDDrawSurface: SetDDrawSurface::<Identity, Impl, OFFSET>,
GetDDrawSurface: GetDDrawSurface::<Identity, Impl, OFFSET>,
SetDrawParameters: SetDrawParameters::<Identity, Impl, OFFSET>,
GetNativeVideoProps: GetNativeVideoProps::<Identity, Impl, OFFSET>,
SetCallbackInterface: SetCallbackInterface::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDDrawExclModeVideo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDDrawExclModeVideoCallback_Impl: Sized {
fn OnUpdateOverlay(&self, bbefore: super::super::Foundation::BOOL, dwflags: u32, boldvisible: super::super::Foundation::BOOL, prcoldsrc: *const super::super::Foundation::RECT, prcolddest: *const super::super::Foundation::RECT, bnewvisible: super::super::Foundation::BOOL, prcnewsrc: *const super::super::Foundation::RECT, prcnewdest: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn OnUpdateColorKey(&self, pkey: *const COLORKEY, dwcolor: u32) -> ::windows_core::Result<()>;
fn OnUpdateSize(&self, dwwidth: u32, dwheight: u32, dwarwidth: u32, dwarheight: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDDrawExclModeVideoCallback {}
#[cfg(feature = "Win32_Foundation")]
impl IDDrawExclModeVideoCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideoCallback_Impl, const OFFSET: isize>() -> IDDrawExclModeVideoCallback_Vtbl {
unsafe extern "system" fn OnUpdateOverlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideoCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bbefore: super::super::Foundation::BOOL, dwflags: u32, boldvisible: super::super::Foundation::BOOL, prcoldsrc: *const super::super::Foundation::RECT, prcolddest: *const super::super::Foundation::RECT, bnewvisible: super::super::Foundation::BOOL, prcnewsrc: *const super::super::Foundation::RECT, prcnewdest: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnUpdateOverlay(::core::mem::transmute_copy(&bbefore), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&boldvisible), ::core::mem::transmute_copy(&prcoldsrc), ::core::mem::transmute_copy(&prcolddest), ::core::mem::transmute_copy(&bnewvisible), ::core::mem::transmute_copy(&prcnewsrc), ::core::mem::transmute_copy(&prcnewdest)).into()
}
unsafe extern "system" fn OnUpdateColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideoCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkey: *const COLORKEY, dwcolor: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnUpdateColorKey(::core::mem::transmute_copy(&pkey), ::core::mem::transmute_copy(&dwcolor)).into()
}
unsafe extern "system" fn OnUpdateSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDDrawExclModeVideoCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwwidth: u32, dwheight: u32, dwarwidth: u32, dwarheight: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnUpdateSize(::core::mem::transmute_copy(&dwwidth), ::core::mem::transmute_copy(&dwheight), ::core::mem::transmute_copy(&dwarwidth), ::core::mem::transmute_copy(&dwarheight)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnUpdateOverlay: OnUpdateOverlay::<Identity, Impl, OFFSET>,
OnUpdateColorKey: OnUpdateColorKey::<Identity, Impl, OFFSET>,
OnUpdateSize: OnUpdateSize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDDrawExclModeVideoCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDMOWrapperFilter_Impl: Sized {
fn Init(&self, clsiddmo: *const ::windows_core::GUID, catdmo: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDMOWrapperFilter {}
impl IDMOWrapperFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDMOWrapperFilter_Impl, const OFFSET: isize>() -> IDMOWrapperFilter_Vtbl {
unsafe extern "system" fn Init<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDMOWrapperFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsiddmo: *const ::windows_core::GUID, catdmo: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Init(::core::mem::transmute_copy(&clsiddmo), ::core::mem::transmute_copy(&catdmo)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Init: Init::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDMOWrapperFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDShowPlugin_Impl: Sized {
fn URL(&self, purl: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
fn UserAgent(&self, puseragent: *mut ::windows_core::BSTR) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDShowPlugin {}
impl IDShowPlugin_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDShowPlugin_Impl, const OFFSET: isize>() -> IDShowPlugin_Vtbl {
unsafe extern "system" fn URL<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDShowPlugin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, purl: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.URL(::core::mem::transmute_copy(&purl)).into()
}
unsafe extern "system" fn UserAgent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDShowPlugin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puseragent: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UserAgent(::core::mem::transmute_copy(&puseragent)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
URL: URL::<Identity, Impl, OFFSET>,
UserAgent: UserAgent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDShowPlugin as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDVEnc_Impl: Sized {
fn get_IFormatResolution(&self, videoformat: *mut i32, dvformat: *mut i32, resolution: *mut i32, fdvinfo: u8, sdvinfo: *mut DVINFO) -> ::windows_core::Result<()>;
fn put_IFormatResolution(&self, videoformat: i32, dvformat: i32, resolution: i32, fdvinfo: u8, sdvinfo: *const DVINFO) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDVEnc {}
impl IDVEnc_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVEnc_Impl, const OFFSET: isize>() -> IDVEnc_Vtbl {
unsafe extern "system" fn get_IFormatResolution<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVEnc_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, videoformat: *mut i32, dvformat: *mut i32, resolution: *mut i32, fdvinfo: u8, sdvinfo: *mut DVINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_IFormatResolution(::core::mem::transmute_copy(&videoformat), ::core::mem::transmute_copy(&dvformat), ::core::mem::transmute_copy(&resolution), ::core::mem::transmute_copy(&fdvinfo), ::core::mem::transmute_copy(&sdvinfo)).into()
}
unsafe extern "system" fn put_IFormatResolution<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVEnc_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, videoformat: i32, dvformat: i32, resolution: i32, fdvinfo: u8, sdvinfo: *const DVINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_IFormatResolution(::core::mem::transmute_copy(&videoformat), ::core::mem::transmute_copy(&dvformat), ::core::mem::transmute_copy(&resolution), ::core::mem::transmute_copy(&fdvinfo), ::core::mem::transmute_copy(&sdvinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_IFormatResolution: get_IFormatResolution::<Identity, Impl, OFFSET>,
put_IFormatResolution: put_IFormatResolution::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDVEnc as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDVRGB219_Impl: Sized {
fn SetRGB219(&self, bstate: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDVRGB219 {}
#[cfg(feature = "Win32_Foundation")]
impl IDVRGB219_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVRGB219_Impl, const OFFSET: isize>() -> IDVRGB219_Vtbl {
unsafe extern "system" fn SetRGB219<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVRGB219_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstate: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRGB219(::core::mem::transmute_copy(&bstate)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), SetRGB219: SetRGB219::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDVRGB219 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDVSplitter_Impl: Sized {
fn DiscardAlternateVideoFrames(&self, ndiscard: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDVSplitter {}
impl IDVSplitter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVSplitter_Impl, const OFFSET: isize>() -> IDVSplitter_Vtbl {
unsafe extern "system" fn DiscardAlternateVideoFrames<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDVSplitter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ndiscard: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DiscardAlternateVideoFrames(::core::mem::transmute_copy(&ndiscard)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DiscardAlternateVideoFrames: DiscardAlternateVideoFrames::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDVSplitter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDecimateVideoImage_Impl: Sized {
fn SetDecimationImageSize(&self, lwidth: i32, lheight: i32) -> ::windows_core::Result<()>;
fn ResetDecimationImageSize(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDecimateVideoImage {}
impl IDecimateVideoImage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDecimateVideoImage_Impl, const OFFSET: isize>() -> IDecimateVideoImage_Vtbl {
unsafe extern "system" fn SetDecimationImageSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDecimateVideoImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lwidth: i32, lheight: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDecimationImageSize(::core::mem::transmute_copy(&lwidth), ::core::mem::transmute_copy(&lheight)).into()
}
unsafe extern "system" fn ResetDecimationImageSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDecimateVideoImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ResetDecimationImageSize().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetDecimationImageSize: SetDecimationImageSize::<Identity, Impl, OFFSET>,
ResetDecimationImageSize: ResetDecimationImageSize::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDecimateVideoImage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDeferredCommand_Impl: Sized {
fn Cancel(&self) -> ::windows_core::Result<()>;
fn Confidence(&self) -> ::windows_core::Result<i32>;
fn Postpone(&self, newtime: f64) -> ::windows_core::Result<()>;
fn GetHResult(&self) -> ::windows_core::Result<::windows_core::HRESULT>;
}
impl ::windows_core::RuntimeName for IDeferredCommand {}
impl IDeferredCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeferredCommand_Impl, const OFFSET: isize>() -> IDeferredCommand_Vtbl {
unsafe extern "system" fn Cancel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeferredCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Cancel().into()
}
unsafe extern "system" fn Confidence<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeferredCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconfidence: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Confidence() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pconfidence, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Postpone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeferredCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newtime: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Postpone(::core::mem::transmute_copy(&newtime)).into()
}
unsafe extern "system" fn GetHResult<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDeferredCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phrresult: *mut ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetHResult() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phrresult, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Cancel: Cancel::<Identity, Impl, OFFSET>,
Confidence: Confidence::<Identity, Impl, OFFSET>,
Postpone: Postpone::<Identity, Impl, OFFSET>,
GetHResult: GetHResult::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDeferredCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IDirectDrawMediaSample_Impl: Sized {
fn GetSurfaceAndReleaseLock(&self, ppdirectdrawsurface: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawSurface>, prect: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn LockMediaSamplePointer(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IDirectDrawMediaSample {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IDirectDrawMediaSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaSample_Impl, const OFFSET: isize>() -> IDirectDrawMediaSample_Vtbl {
unsafe extern "system" fn GetSurfaceAndReleaseLock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirectdrawsurface: *mut *mut ::core::ffi::c_void, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSurfaceAndReleaseLock(::core::mem::transmute_copy(&ppdirectdrawsurface), ::core::mem::transmute_copy(&prect)).into()
}
unsafe extern "system" fn LockMediaSamplePointer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LockMediaSamplePointer().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSurfaceAndReleaseLock: GetSurfaceAndReleaseLock::<Identity, Impl, OFFSET>,
LockMediaSamplePointer: LockMediaSamplePointer::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDirectDrawMediaSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectDraw")]
pub trait IDirectDrawMediaSampleAllocator_Impl: Sized {
fn GetDirectDraw(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::IDirectDraw>;
}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl ::windows_core::RuntimeName for IDirectDrawMediaSampleAllocator {}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl IDirectDrawMediaSampleAllocator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaSampleAllocator_Impl, const OFFSET: isize>() -> IDirectDrawMediaSampleAllocator_Vtbl {
unsafe extern "system" fn GetDirectDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaSampleAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirectdraw: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDirectDraw() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdirectdraw, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetDirectDraw: GetDirectDraw::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDirectDrawMediaSampleAllocator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IDirectDrawMediaStream_Impl: Sized + IMediaStream_Impl {
fn GetFormat(&self, pddsdcurrent: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC, ppdirectdrawpalette: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawPalette>, pddsddesired: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC, pdwflags: *mut u32) -> ::windows_core::Result<()>;
fn SetFormat(&self, pddsurfacedesc: *const super::super::Graphics::DirectDraw::DDSURFACEDESC, pdirectdrawpalette: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawPalette>) -> ::windows_core::Result<()>;
fn GetDirectDraw(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::IDirectDraw>;
fn SetDirectDraw(&self, pdirectdraw: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw>) -> ::windows_core::Result<()>;
fn CreateSample(&self, psurface: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface>, prect: *const super::super::Foundation::RECT, dwflags: u32) -> ::windows_core::Result<IDirectDrawStreamSample>;
fn GetTimePerFrame(&self) -> ::windows_core::Result<i64>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IDirectDrawMediaStream {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IDirectDrawMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>() -> IDirectDrawMediaStream_Vtbl {
unsafe extern "system" fn GetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pddsdcurrent: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC, ppdirectdrawpalette: *mut *mut ::core::ffi::c_void, pddsddesired: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFormat(::core::mem::transmute_copy(&pddsdcurrent), ::core::mem::transmute_copy(&ppdirectdrawpalette), ::core::mem::transmute_copy(&pddsddesired), ::core::mem::transmute_copy(&pdwflags)).into()
}
unsafe extern "system" fn SetFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pddsurfacedesc: *const super::super::Graphics::DirectDraw::DDSURFACEDESC, pdirectdrawpalette: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFormat(::core::mem::transmute_copy(&pddsurfacedesc), ::windows_core::from_raw_borrowed(&pdirectdrawpalette)).into()
}
unsafe extern "system" fn GetDirectDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirectdraw: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDirectDraw() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdirectdraw, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDirectDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdirectdraw: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDirectDraw(::windows_core::from_raw_borrowed(&pdirectdraw)).into()
}
unsafe extern "system" fn CreateSample<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psurface: *mut ::core::ffi::c_void, prect: *const super::super::Foundation::RECT, dwflags: u32, ppsample: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateSample(::windows_core::from_raw_borrowed(&psurface), ::core::mem::transmute_copy(&prect), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsample, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTimePerFrame<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pframetime: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTimePerFrame() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pframetime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IMediaStream_Vtbl::new::<Identity, Impl, OFFSET>(),
GetFormat: GetFormat::<Identity, Impl, OFFSET>,
SetFormat: SetFormat::<Identity, Impl, OFFSET>,
GetDirectDraw: GetDirectDraw::<Identity, Impl, OFFSET>,
SetDirectDraw: SetDirectDraw::<Identity, Impl, OFFSET>,
CreateSample: CreateSample::<Identity, Impl, OFFSET>,
GetTimePerFrame: GetTimePerFrame::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDirectDrawMediaStream as ::windows_core::ComInterface>::IID || iid == &<IMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IDirectDrawStreamSample_Impl: Sized + IStreamSample_Impl {
fn GetSurface(&self, ppdirectdrawsurface: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawSurface>, prect: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn SetRect(&self, prect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IDirectDrawStreamSample {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IDirectDrawStreamSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawStreamSample_Impl, const OFFSET: isize>() -> IDirectDrawStreamSample_Vtbl {
unsafe extern "system" fn GetSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirectdrawsurface: *mut *mut ::core::ffi::c_void, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSurface(::core::mem::transmute_copy(&ppdirectdrawsurface), ::core::mem::transmute_copy(&prect)).into()
}
unsafe extern "system" fn SetRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRect(::core::mem::transmute_copy(&prect)).into()
}
Self {
base__: IStreamSample_Vtbl::new::<Identity, Impl, OFFSET>(),
GetSurface: GetSurface::<Identity, Impl, OFFSET>,
SetRect: SetRect::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDirectDrawStreamSample as ::windows_core::ComInterface>::IID || iid == &<IStreamSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectDraw")]
pub trait IDirectDrawVideo_Impl: Sized {
fn GetSwitches(&self) -> ::windows_core::Result<u32>;
fn SetSwitches(&self, switches: u32) -> ::windows_core::Result<()>;
fn GetCaps(&self, pcaps: *mut super::super::Graphics::DirectDraw::DDCAPS_DX7) -> ::windows_core::Result<()>;
fn GetEmulatedCaps(&self, pcaps: *mut super::super::Graphics::DirectDraw::DDCAPS_DX7) -> ::windows_core::Result<()>;
fn GetSurfaceDesc(&self, psurfacedesc: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC) -> ::windows_core::Result<()>;
fn GetFourCCCodes(&self, pcount: *mut u32, pcodes: *mut u32) -> ::windows_core::Result<()>;
fn SetDirectDraw(&self, pdirectdraw: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw>) -> ::windows_core::Result<()>;
fn GetDirectDraw(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::IDirectDraw>;
fn GetSurfaceType(&self) -> ::windows_core::Result<u32>;
fn SetDefault(&self) -> ::windows_core::Result<()>;
fn UseScanLine(&self, usescanline: i32) -> ::windows_core::Result<()>;
fn CanUseScanLine(&self) -> ::windows_core::Result<i32>;
fn UseOverlayStretch(&self, useoverlaystretch: i32) -> ::windows_core::Result<()>;
fn CanUseOverlayStretch(&self) -> ::windows_core::Result<i32>;
fn UseWhenFullScreen(&self, usewhenfullscreen: i32) -> ::windows_core::Result<()>;
fn WillUseFullScreen(&self) -> ::windows_core::Result<i32>;
}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl ::windows_core::RuntimeName for IDirectDrawVideo {}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl IDirectDrawVideo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>() -> IDirectDrawVideo_Vtbl {
unsafe extern "system" fn GetSwitches<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pswitches: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSwitches() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pswitches, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSwitches<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, switches: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSwitches(::core::mem::transmute_copy(&switches)).into()
}
unsafe extern "system" fn GetCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcaps: *mut super::super::Graphics::DirectDraw::DDCAPS_DX7) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCaps(::core::mem::transmute_copy(&pcaps)).into()
}
unsafe extern "system" fn GetEmulatedCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcaps: *mut super::super::Graphics::DirectDraw::DDCAPS_DX7) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEmulatedCaps(::core::mem::transmute_copy(&pcaps)).into()
}
unsafe extern "system" fn GetSurfaceDesc<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psurfacedesc: *mut super::super::Graphics::DirectDraw::DDSURFACEDESC) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSurfaceDesc(::core::mem::transmute_copy(&psurfacedesc)).into()
}
unsafe extern "system" fn GetFourCCCodes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcount: *mut u32, pcodes: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetFourCCCodes(::core::mem::transmute_copy(&pcount), ::core::mem::transmute_copy(&pcodes)).into()
}
unsafe extern "system" fn SetDirectDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdirectdraw: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDirectDraw(::windows_core::from_raw_borrowed(&pdirectdraw)).into()
}
unsafe extern "system" fn GetDirectDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirectdraw: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDirectDraw() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdirectdraw, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSurfaceType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psurfacetype: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSurfaceType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(psurfacetype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefault().into()
}
unsafe extern "system" fn UseScanLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usescanline: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UseScanLine(::core::mem::transmute_copy(&usescanline)).into()
}
unsafe extern "system" fn CanUseScanLine<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usescanline: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanUseScanLine() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(usescanline, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UseOverlayStretch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, useoverlaystretch: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UseOverlayStretch(::core::mem::transmute_copy(&useoverlaystretch)).into()
}
unsafe extern "system" fn CanUseOverlayStretch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, useoverlaystretch: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanUseOverlayStretch() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(useoverlaystretch, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UseWhenFullScreen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usewhenfullscreen: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UseWhenFullScreen(::core::mem::transmute_copy(&usewhenfullscreen)).into()
}
unsafe extern "system" fn WillUseFullScreen<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDirectDrawVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, usewhenfullscreen: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WillUseFullScreen() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(usewhenfullscreen, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetSwitches: GetSwitches::<Identity, Impl, OFFSET>,
SetSwitches: SetSwitches::<Identity, Impl, OFFSET>,
GetCaps: GetCaps::<Identity, Impl, OFFSET>,
GetEmulatedCaps: GetEmulatedCaps::<Identity, Impl, OFFSET>,
GetSurfaceDesc: GetSurfaceDesc::<Identity, Impl, OFFSET>,
GetFourCCCodes: GetFourCCCodes::<Identity, Impl, OFFSET>,
SetDirectDraw: SetDirectDraw::<Identity, Impl, OFFSET>,
GetDirectDraw: GetDirectDraw::<Identity, Impl, OFFSET>,
GetSurfaceType: GetSurfaceType::<Identity, Impl, OFFSET>,
SetDefault: SetDefault::<Identity, Impl, OFFSET>,
UseScanLine: UseScanLine::<Identity, Impl, OFFSET>,
CanUseScanLine: CanUseScanLine::<Identity, Impl, OFFSET>,
UseOverlayStretch: UseOverlayStretch::<Identity, Impl, OFFSET>,
CanUseOverlayStretch: CanUseOverlayStretch::<Identity, Impl, OFFSET>,
UseWhenFullScreen: UseWhenFullScreen::<Identity, Impl, OFFSET>,
WillUseFullScreen: WillUseFullScreen::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDirectDrawVideo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDistributorNotify_Impl: Sized {
fn Stop(&self) -> ::windows_core::Result<()>;
fn Pause(&self) -> ::windows_core::Result<()>;
fn Run(&self, tstart: i64) -> ::windows_core::Result<()>;
fn SetSyncSource(&self, pclock: ::core::option::Option<&super::IReferenceClock>) -> ::windows_core::Result<()>;
fn NotifyGraphChange(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDistributorNotify {}
impl IDistributorNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>() -> IDistributorNotify_Vtbl {
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
unsafe extern "system" fn Pause<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Pause().into()
}
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tstart: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Run(::core::mem::transmute_copy(&tstart)).into()
}
unsafe extern "system" fn SetSyncSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclock: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncSource(::windows_core::from_raw_borrowed(&pclock)).into()
}
unsafe extern "system" fn NotifyGraphChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDistributorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyGraphChange().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Stop: Stop::<Identity, Impl, OFFSET>,
Pause: Pause::<Identity, Impl, OFFSET>,
Run: Run::<Identity, Impl, OFFSET>,
SetSyncSource: SetSyncSource::<Identity, Impl, OFFSET>,
NotifyGraphChange: NotifyGraphChange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDistributorNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IDrawVideoImage_Impl: Sized {
fn DrawVideoImageBegin(&self) -> ::windows_core::Result<()>;
fn DrawVideoImageEnd(&self) -> ::windows_core::Result<()>;
fn DrawVideoImageDraw(&self, hdc: super::super::Graphics::Gdi::HDC, lprcsrc: *const super::super::Foundation::RECT, lprcdst: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IDrawVideoImage {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IDrawVideoImage_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDrawVideoImage_Impl, const OFFSET: isize>() -> IDrawVideoImage_Vtbl {
unsafe extern "system" fn DrawVideoImageBegin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDrawVideoImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DrawVideoImageBegin().into()
}
unsafe extern "system" fn DrawVideoImageEnd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDrawVideoImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DrawVideoImageEnd().into()
}
unsafe extern "system" fn DrawVideoImageDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDrawVideoImage_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdc: super::super::Graphics::Gdi::HDC, lprcsrc: *const super::super::Foundation::RECT, lprcdst: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DrawVideoImageDraw(::core::mem::transmute_copy(&hdc), ::core::mem::transmute_copy(&lprcsrc), ::core::mem::transmute_copy(&lprcdst)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DrawVideoImageBegin: DrawVideoImageBegin::<Identity, Impl, OFFSET>,
DrawVideoImageEnd: DrawVideoImageEnd::<Identity, Impl, OFFSET>,
DrawVideoImageDraw: DrawVideoImageDraw::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDrawVideoImage as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDvdCmd_Impl: Sized {
fn WaitForStart(&self) -> ::windows_core::Result<()>;
fn WaitForEnd(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IDvdCmd {}
impl IDvdCmd_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdCmd_Impl, const OFFSET: isize>() -> IDvdCmd_Vtbl {
unsafe extern "system" fn WaitForStart<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdCmd_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForStart().into()
}
unsafe extern "system" fn WaitForEnd<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdCmd_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitForEnd().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
WaitForStart: WaitForStart::<Identity, Impl, OFFSET>,
WaitForEnd: WaitForEnd::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdCmd as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDvdControl_Impl: Sized {
fn TitlePlay(&self, ultitle: u32) -> ::windows_core::Result<()>;
fn ChapterPlay(&self, ultitle: u32, ulchapter: u32) -> ::windows_core::Result<()>;
fn TimePlay(&self, ultitle: u32, bcdtime: u32) -> ::windows_core::Result<()>;
fn StopForResume(&self) -> ::windows_core::Result<()>;
fn GoUp(&self) -> ::windows_core::Result<()>;
fn TimeSearch(&self, bcdtime: u32) -> ::windows_core::Result<()>;
fn ChapterSearch(&self, ulchapter: u32) -> ::windows_core::Result<()>;
fn PrevPGSearch(&self) -> ::windows_core::Result<()>;
fn TopPGSearch(&self) -> ::windows_core::Result<()>;
fn NextPGSearch(&self) -> ::windows_core::Result<()>;
fn ForwardScan(&self, dwspeed: f64) -> ::windows_core::Result<()>;
fn BackwardScan(&self, dwspeed: f64) -> ::windows_core::Result<()>;
fn MenuCall(&self, menuid: DVD_MENU_ID) -> ::windows_core::Result<()>;
fn Resume(&self) -> ::windows_core::Result<()>;
fn UpperButtonSelect(&self) -> ::windows_core::Result<()>;
fn LowerButtonSelect(&self) -> ::windows_core::Result<()>;
fn LeftButtonSelect(&self) -> ::windows_core::Result<()>;
fn RightButtonSelect(&self) -> ::windows_core::Result<()>;
fn ButtonActivate(&self) -> ::windows_core::Result<()>;
fn ButtonSelectAndActivate(&self, ulbutton: u32) -> ::windows_core::Result<()>;
fn StillOff(&self) -> ::windows_core::Result<()>;
fn PauseOn(&self) -> ::windows_core::Result<()>;
fn PauseOff(&self) -> ::windows_core::Result<()>;
fn MenuLanguageSelect(&self, language: u32) -> ::windows_core::Result<()>;
fn AudioStreamChange(&self, ulaudio: u32) -> ::windows_core::Result<()>;
fn SubpictureStreamChange(&self, ulsubpicture: u32, bdisplay: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn AngleChange(&self, ulangle: u32) -> ::windows_core::Result<()>;
fn ParentalLevelSelect(&self, ulparentallevel: u32) -> ::windows_core::Result<()>;
fn ParentalCountrySelect(&self, wcountry: u16) -> ::windows_core::Result<()>;
fn KaraokeAudioPresentationModeChange(&self, ulmode: u32) -> ::windows_core::Result<()>;
fn VideoModePreferrence(&self, ulpreferreddisplaymode: u32) -> ::windows_core::Result<()>;
fn SetRoot(&self, pszpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn MouseActivate(&self, point: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn MouseSelect(&self, point: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn ChapterPlayAutoStop(&self, ultitle: u32, ulchapter: u32, ulchapterstoplay: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDvdControl {}
#[cfg(feature = "Win32_Foundation")]
impl IDvdControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>() -> IDvdControl_Vtbl {
unsafe extern "system" fn TitlePlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TitlePlay(::core::mem::transmute_copy(&ultitle)).into()
}
unsafe extern "system" fn ChapterPlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, ulchapter: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChapterPlay(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&ulchapter)).into()
}
unsafe extern "system" fn TimePlay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, bcdtime: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TimePlay(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&bcdtime)).into()
}
unsafe extern "system" fn StopForResume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopForResume().into()
}
unsafe extern "system" fn GoUp<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GoUp().into()
}
unsafe extern "system" fn TimeSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bcdtime: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TimeSearch(::core::mem::transmute_copy(&bcdtime)).into()
}
unsafe extern "system" fn ChapterSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulchapter: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChapterSearch(::core::mem::transmute_copy(&ulchapter)).into()
}
unsafe extern "system" fn PrevPGSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PrevPGSearch().into()
}
unsafe extern "system" fn TopPGSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TopPGSearch().into()
}
unsafe extern "system" fn NextPGSearch<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NextPGSearch().into()
}
unsafe extern "system" fn ForwardScan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwspeed: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ForwardScan(::core::mem::transmute_copy(&dwspeed)).into()
}
unsafe extern "system" fn BackwardScan<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwspeed: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BackwardScan(::core::mem::transmute_copy(&dwspeed)).into()
}
unsafe extern "system" fn MenuCall<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, menuid: DVD_MENU_ID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MenuCall(::core::mem::transmute_copy(&menuid)).into()
}
unsafe extern "system" fn Resume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Resume().into()
}
unsafe extern "system" fn UpperButtonSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpperButtonSelect().into()
}
unsafe extern "system" fn LowerButtonSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LowerButtonSelect().into()
}
unsafe extern "system" fn LeftButtonSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.LeftButtonSelect().into()
}
unsafe extern "system" fn RightButtonSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RightButtonSelect().into()
}
unsafe extern "system" fn ButtonActivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ButtonActivate().into()
}
unsafe extern "system" fn ButtonSelectAndActivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbutton: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ButtonSelectAndActivate(::core::mem::transmute_copy(&ulbutton)).into()
}
unsafe extern "system" fn StillOff<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StillOff().into()
}
unsafe extern "system" fn PauseOn<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PauseOn().into()
}
unsafe extern "system" fn PauseOff<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PauseOff().into()
}
unsafe extern "system" fn MenuLanguageSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, language: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MenuLanguageSelect(::core::mem::transmute_copy(&language)).into()
}
unsafe extern "system" fn AudioStreamChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulaudio: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AudioStreamChange(::core::mem::transmute_copy(&ulaudio)).into()
}
unsafe extern "system" fn SubpictureStreamChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulsubpicture: u32, bdisplay: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SubpictureStreamChange(::core::mem::transmute_copy(&ulsubpicture), ::core::mem::transmute_copy(&bdisplay)).into()
}
unsafe extern "system" fn AngleChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulangle: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AngleChange(::core::mem::transmute_copy(&ulangle)).into()
}
unsafe extern "system" fn ParentalLevelSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulparentallevel: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ParentalLevelSelect(::core::mem::transmute_copy(&ulparentallevel)).into()
}
unsafe extern "system" fn ParentalCountrySelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wcountry: u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ParentalCountrySelect(::core::mem::transmute_copy(&wcountry)).into()
}
unsafe extern "system" fn KaraokeAudioPresentationModeChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.KaraokeAudioPresentationModeChange(::core::mem::transmute_copy(&ulmode)).into()
}
unsafe extern "system" fn VideoModePreferrence<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpreferreddisplaymode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.VideoModePreferrence(::core::mem::transmute_copy(&ulpreferreddisplaymode)).into()
}
unsafe extern "system" fn SetRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRoot(::core::mem::transmute(&pszpath)).into()
}
unsafe extern "system" fn MouseActivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, point: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MouseActivate(::core::mem::transmute(&point)).into()
}
unsafe extern "system" fn MouseSelect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, point: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MouseSelect(::core::mem::transmute(&point)).into()
}
unsafe extern "system" fn ChapterPlayAutoStop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, ulchapter: u32, ulchapterstoplay: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChapterPlayAutoStop(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&ulchapter), ::core::mem::transmute_copy(&ulchapterstoplay)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
TitlePlay: TitlePlay::<Identity, Impl, OFFSET>,
ChapterPlay: ChapterPlay::<Identity, Impl, OFFSET>,
TimePlay: TimePlay::<Identity, Impl, OFFSET>,
StopForResume: StopForResume::<Identity, Impl, OFFSET>,
GoUp: GoUp::<Identity, Impl, OFFSET>,
TimeSearch: TimeSearch::<Identity, Impl, OFFSET>,
ChapterSearch: ChapterSearch::<Identity, Impl, OFFSET>,
PrevPGSearch: PrevPGSearch::<Identity, Impl, OFFSET>,
TopPGSearch: TopPGSearch::<Identity, Impl, OFFSET>,
NextPGSearch: NextPGSearch::<Identity, Impl, OFFSET>,
ForwardScan: ForwardScan::<Identity, Impl, OFFSET>,
BackwardScan: BackwardScan::<Identity, Impl, OFFSET>,
MenuCall: MenuCall::<Identity, Impl, OFFSET>,
Resume: Resume::<Identity, Impl, OFFSET>,
UpperButtonSelect: UpperButtonSelect::<Identity, Impl, OFFSET>,
LowerButtonSelect: LowerButtonSelect::<Identity, Impl, OFFSET>,
LeftButtonSelect: LeftButtonSelect::<Identity, Impl, OFFSET>,
RightButtonSelect: RightButtonSelect::<Identity, Impl, OFFSET>,
ButtonActivate: ButtonActivate::<Identity, Impl, OFFSET>,
ButtonSelectAndActivate: ButtonSelectAndActivate::<Identity, Impl, OFFSET>,
StillOff: StillOff::<Identity, Impl, OFFSET>,
PauseOn: PauseOn::<Identity, Impl, OFFSET>,
PauseOff: PauseOff::<Identity, Impl, OFFSET>,
MenuLanguageSelect: MenuLanguageSelect::<Identity, Impl, OFFSET>,
AudioStreamChange: AudioStreamChange::<Identity, Impl, OFFSET>,
SubpictureStreamChange: SubpictureStreamChange::<Identity, Impl, OFFSET>,
AngleChange: AngleChange::<Identity, Impl, OFFSET>,
ParentalLevelSelect: ParentalLevelSelect::<Identity, Impl, OFFSET>,
ParentalCountrySelect: ParentalCountrySelect::<Identity, Impl, OFFSET>,
KaraokeAudioPresentationModeChange: KaraokeAudioPresentationModeChange::<Identity, Impl, OFFSET>,
VideoModePreferrence: VideoModePreferrence::<Identity, Impl, OFFSET>,
SetRoot: SetRoot::<Identity, Impl, OFFSET>,
MouseActivate: MouseActivate::<Identity, Impl, OFFSET>,
MouseSelect: MouseSelect::<Identity, Impl, OFFSET>,
ChapterPlayAutoStop: ChapterPlayAutoStop::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDvdControl2_Impl: Sized {
fn PlayTitle(&self, ultitle: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayChapterInTitle(&self, ultitle: u32, ulchapter: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayAtTimeInTitle(&self, ultitle: u32, pstarttime: *const DVD_HMSF_TIMECODE, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn Stop(&self) -> ::windows_core::Result<()>;
fn ReturnFromSubmenu(&self, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayAtTime(&self, ptime: *const DVD_HMSF_TIMECODE, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayChapter(&self, ulchapter: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayPrevChapter(&self, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn ReplayChapter(&self, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayNextChapter(&self, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayForwards(&self, dspeed: f64, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayBackwards(&self, dspeed: f64, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn ShowMenu(&self, menuid: DVD_MENU_ID, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn Resume(&self, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SelectRelativeButton(&self, buttondir: DVD_RELATIVE_BUTTON) -> ::windows_core::Result<()>;
fn ActivateButton(&self) -> ::windows_core::Result<()>;
fn SelectButton(&self, ulbutton: u32) -> ::windows_core::Result<()>;
fn SelectAndActivateButton(&self, ulbutton: u32) -> ::windows_core::Result<()>;
fn StillOff(&self) -> ::windows_core::Result<()>;
fn Pause(&self, bstate: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SelectAudioStream(&self, ulaudio: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SelectSubpictureStream(&self, ulsubpicture: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SetSubpictureState(&self, bstate: super::super::Foundation::BOOL, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SelectAngle(&self, ulangle: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SelectParentalLevel(&self, ulparentallevel: u32) -> ::windows_core::Result<()>;
fn SelectParentalCountry(&self, bcountry: *const u8) -> ::windows_core::Result<()>;
fn SelectKaraokeAudioPresentationMode(&self, ulmode: u32) -> ::windows_core::Result<()>;
fn SelectVideoModePreference(&self, ulpreferreddisplaymode: u32) -> ::windows_core::Result<()>;
fn SetDVDDirectory(&self, pszwpath: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn ActivateAtPosition(&self, point: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn SelectAtPosition(&self, point: &super::super::Foundation::POINT) -> ::windows_core::Result<()>;
fn PlayChaptersAutoStop(&self, ultitle: u32, ulchapter: u32, ulchapterstoplay: u32, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn AcceptParentalLevelChange(&self, baccept: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetOption(&self, flag: DVD_OPTION_FLAG, fstate: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn SetState(&self, pstate: ::core::option::Option<&IDvdState>, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn PlayPeriodInTitleAutoStop(&self, ultitle: u32, pstarttime: *const DVD_HMSF_TIMECODE, pendtime: *const DVD_HMSF_TIMECODE, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SetGPRM(&self, ulindex: u32, wvalue: u16, dwflags: u32) -> ::windows_core::Result<IDvdCmd>;
fn SelectDefaultMenuLanguage(&self, language: u32) -> ::windows_core::Result<()>;
fn SelectDefaultAudioLanguage(&self, language: u32, audioextension: DVD_AUDIO_LANG_EXT) -> ::windows_core::Result<()>;
fn SelectDefaultSubpictureLanguage(&self, language: u32, subpictureextension: DVD_SUBPICTURE_LANG_EXT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDvdControl2 {}
#[cfg(feature = "Win32_Foundation")]
impl IDvdControl2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>() -> IDvdControl2_Vtbl {
unsafe extern "system" fn PlayTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayTitle(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayChapterInTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, ulchapter: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayChapterInTitle(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&ulchapter), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayAtTimeInTitle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pstarttime: *const DVD_HMSF_TIMECODE, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayAtTimeInTitle(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&pstarttime), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
unsafe extern "system" fn ReturnFromSubmenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReturnFromSubmenu(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayAtTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptime: *const DVD_HMSF_TIMECODE, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayAtTime(::core::mem::transmute_copy(&ptime), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayChapter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulchapter: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayChapter(::core::mem::transmute_copy(&ulchapter), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayPrevChapter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayPrevChapter(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReplayChapter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReplayChapter(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayNextChapter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayNextChapter(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayForwards<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dspeed: f64, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayForwards(::core::mem::transmute_copy(&dspeed), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayBackwards<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dspeed: f64, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayBackwards(::core::mem::transmute_copy(&dspeed), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ShowMenu<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, menuid: DVD_MENU_ID, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ShowMenu(::core::mem::transmute_copy(&menuid), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Resume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Resume(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectRelativeButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, buttondir: DVD_RELATIVE_BUTTON) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectRelativeButton(::core::mem::transmute_copy(&buttondir)).into()
}
unsafe extern "system" fn ActivateButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateButton().into()
}
unsafe extern "system" fn SelectButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbutton: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectButton(::core::mem::transmute_copy(&ulbutton)).into()
}
unsafe extern "system" fn SelectAndActivateButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbutton: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectAndActivateButton(::core::mem::transmute_copy(&ulbutton)).into()
}
unsafe extern "system" fn StillOff<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StillOff().into()
}
unsafe extern "system" fn Pause<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstate: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Pause(::core::mem::transmute_copy(&bstate)).into()
}
unsafe extern "system" fn SelectAudioStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulaudio: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SelectAudioStream(::core::mem::transmute_copy(&ulaudio), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectSubpictureStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulsubpicture: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SelectSubpictureStream(::core::mem::transmute_copy(&ulsubpicture), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSubpictureState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstate: super::super::Foundation::BOOL, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetSubpictureState(::core::mem::transmute_copy(&bstate), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectAngle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulangle: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SelectAngle(::core::mem::transmute_copy(&ulangle), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectParentalLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulparentallevel: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectParentalLevel(::core::mem::transmute_copy(&ulparentallevel)).into()
}
unsafe extern "system" fn SelectParentalCountry<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bcountry: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectParentalCountry(::core::mem::transmute_copy(&bcountry)).into()
}
unsafe extern "system" fn SelectKaraokeAudioPresentationMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectKaraokeAudioPresentationMode(::core::mem::transmute_copy(&ulmode)).into()
}
unsafe extern "system" fn SelectVideoModePreference<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulpreferreddisplaymode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectVideoModePreference(::core::mem::transmute_copy(&ulpreferreddisplaymode)).into()
}
unsafe extern "system" fn SetDVDDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszwpath: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDVDDirectory(::core::mem::transmute(&pszwpath)).into()
}
unsafe extern "system" fn ActivateAtPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, point: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ActivateAtPosition(::core::mem::transmute(&point)).into()
}
unsafe extern "system" fn SelectAtPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, point: super::super::Foundation::POINT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectAtPosition(::core::mem::transmute(&point)).into()
}
unsafe extern "system" fn PlayChaptersAutoStop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, ulchapter: u32, ulchapterstoplay: u32, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayChaptersAutoStop(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&ulchapter), ::core::mem::transmute_copy(&ulchapterstoplay), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AcceptParentalLevelChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, baccept: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AcceptParentalLevelChange(::core::mem::transmute_copy(&baccept)).into()
}
unsafe extern "system" fn SetOption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, flag: DVD_OPTION_FLAG, fstate: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOption(::core::mem::transmute_copy(&flag), ::core::mem::transmute_copy(&fstate)).into()
}
unsafe extern "system" fn SetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstate: *mut ::core::ffi::c_void, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetState(::windows_core::from_raw_borrowed(&pstate), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PlayPeriodInTitleAutoStop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pstarttime: *const DVD_HMSF_TIMECODE, pendtime: *const DVD_HMSF_TIMECODE, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PlayPeriodInTitleAutoStop(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&pstarttime), ::core::mem::transmute_copy(&pendtime), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetGPRM<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulindex: u32, wvalue: u16, dwflags: u32, ppcmd: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetGPRM(::core::mem::transmute_copy(&ulindex), ::core::mem::transmute_copy(&wvalue), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppcmd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SelectDefaultMenuLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, language: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectDefaultMenuLanguage(::core::mem::transmute_copy(&language)).into()
}
unsafe extern "system" fn SelectDefaultAudioLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, language: u32, audioextension: DVD_AUDIO_LANG_EXT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectDefaultAudioLanguage(::core::mem::transmute_copy(&language), ::core::mem::transmute_copy(&audioextension)).into()
}
unsafe extern "system" fn SelectDefaultSubpictureLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdControl2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, language: u32, subpictureextension: DVD_SUBPICTURE_LANG_EXT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SelectDefaultSubpictureLanguage(::core::mem::transmute_copy(&language), ::core::mem::transmute_copy(&subpictureextension)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
PlayTitle: PlayTitle::<Identity, Impl, OFFSET>,
PlayChapterInTitle: PlayChapterInTitle::<Identity, Impl, OFFSET>,
PlayAtTimeInTitle: PlayAtTimeInTitle::<Identity, Impl, OFFSET>,
Stop: Stop::<Identity, Impl, OFFSET>,
ReturnFromSubmenu: ReturnFromSubmenu::<Identity, Impl, OFFSET>,
PlayAtTime: PlayAtTime::<Identity, Impl, OFFSET>,
PlayChapter: PlayChapter::<Identity, Impl, OFFSET>,
PlayPrevChapter: PlayPrevChapter::<Identity, Impl, OFFSET>,
ReplayChapter: ReplayChapter::<Identity, Impl, OFFSET>,
PlayNextChapter: PlayNextChapter::<Identity, Impl, OFFSET>,
PlayForwards: PlayForwards::<Identity, Impl, OFFSET>,
PlayBackwards: PlayBackwards::<Identity, Impl, OFFSET>,
ShowMenu: ShowMenu::<Identity, Impl, OFFSET>,
Resume: Resume::<Identity, Impl, OFFSET>,
SelectRelativeButton: SelectRelativeButton::<Identity, Impl, OFFSET>,
ActivateButton: ActivateButton::<Identity, Impl, OFFSET>,
SelectButton: SelectButton::<Identity, Impl, OFFSET>,
SelectAndActivateButton: SelectAndActivateButton::<Identity, Impl, OFFSET>,
StillOff: StillOff::<Identity, Impl, OFFSET>,
Pause: Pause::<Identity, Impl, OFFSET>,
SelectAudioStream: SelectAudioStream::<Identity, Impl, OFFSET>,
SelectSubpictureStream: SelectSubpictureStream::<Identity, Impl, OFFSET>,
SetSubpictureState: SetSubpictureState::<Identity, Impl, OFFSET>,
SelectAngle: SelectAngle::<Identity, Impl, OFFSET>,
SelectParentalLevel: SelectParentalLevel::<Identity, Impl, OFFSET>,
SelectParentalCountry: SelectParentalCountry::<Identity, Impl, OFFSET>,
SelectKaraokeAudioPresentationMode: SelectKaraokeAudioPresentationMode::<Identity, Impl, OFFSET>,
SelectVideoModePreference: SelectVideoModePreference::<Identity, Impl, OFFSET>,
SetDVDDirectory: SetDVDDirectory::<Identity, Impl, OFFSET>,
ActivateAtPosition: ActivateAtPosition::<Identity, Impl, OFFSET>,
SelectAtPosition: SelectAtPosition::<Identity, Impl, OFFSET>,
PlayChaptersAutoStop: PlayChaptersAutoStop::<Identity, Impl, OFFSET>,
AcceptParentalLevelChange: AcceptParentalLevelChange::<Identity, Impl, OFFSET>,
SetOption: SetOption::<Identity, Impl, OFFSET>,
SetState: SetState::<Identity, Impl, OFFSET>,
PlayPeriodInTitleAutoStop: PlayPeriodInTitleAutoStop::<Identity, Impl, OFFSET>,
SetGPRM: SetGPRM::<Identity, Impl, OFFSET>,
SelectDefaultMenuLanguage: SelectDefaultMenuLanguage::<Identity, Impl, OFFSET>,
SelectDefaultAudioLanguage: SelectDefaultAudioLanguage::<Identity, Impl, OFFSET>,
SelectDefaultSubpictureLanguage: SelectDefaultSubpictureLanguage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdControl2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDvdGraphBuilder_Impl: Sized {
fn GetFiltergraph(&self) -> ::windows_core::Result<IGraphBuilder>;
fn GetDvdInterface(&self, riid: *const ::windows_core::GUID, ppvif: *mut *mut ::core::ffi::c_void) -> ::windows_core::Result<()>;
fn RenderDvdVideoVolume(&self, lpcwszpathname: &::windows_core::PCWSTR, dwflags: u32, pstatus: *mut AM_DVD_RENDERSTATUS) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDvdGraphBuilder {}
#[cfg(feature = "Win32_Foundation")]
impl IDvdGraphBuilder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdGraphBuilder_Impl, const OFFSET: isize>() -> IDvdGraphBuilder_Vtbl {
unsafe extern "system" fn GetFiltergraph<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppgb: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFiltergraph() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppgb, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDvdInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, riid: *const ::windows_core::GUID, ppvif: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDvdInterface(::core::mem::transmute_copy(&riid), ::core::mem::transmute_copy(&ppvif)).into()
}
unsafe extern "system" fn RenderDvdVideoVolume<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpcwszpathname: ::windows_core::PCWSTR, dwflags: u32, pstatus: *mut AM_DVD_RENDERSTATUS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderDvdVideoVolume(::core::mem::transmute(&lpcwszpathname), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&pstatus)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetFiltergraph: GetFiltergraph::<Identity, Impl, OFFSET>,
GetDvdInterface: GetDvdInterface::<Identity, Impl, OFFSET>,
RenderDvdVideoVolume: RenderDvdVideoVolume::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdGraphBuilder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDvdInfo_Impl: Sized {
fn GetCurrentDomain(&self) -> ::windows_core::Result<DVD_DOMAIN>;
fn GetCurrentLocation(&self) -> ::windows_core::Result<DVD_PLAYBACK_LOCATION>;
fn GetTotalTitleTime(&self) -> ::windows_core::Result<u32>;
fn GetCurrentButton(&self, pulbuttonsavailable: *mut u32, pulcurrentbutton: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentAngle(&self, pulanglesavailable: *mut u32, pulcurrentangle: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentAudio(&self, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentSubpicture(&self, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32, pisdisabled: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetCurrentUOPS(&self) -> ::windows_core::Result<u32>;
fn GetAllSPRMs(&self) -> ::windows_core::Result<*mut u16>;
fn GetAllGPRMs(&self) -> ::windows_core::Result<*mut u16>;
fn GetAudioLanguage(&self, ulstream: u32) -> ::windows_core::Result<u32>;
fn GetSubpictureLanguage(&self, ulstream: u32) -> ::windows_core::Result<u32>;
fn GetTitleAttributes(&self, ultitle: u32, patr: *mut DVD_ATR) -> ::windows_core::Result<()>;
fn GetVMGAttributes(&self, patr: *mut DVD_ATR) -> ::windows_core::Result<()>;
fn GetCurrentVideoAttributes(&self) -> ::windows_core::Result<*mut u8>;
fn GetCurrentAudioAttributes(&self) -> ::windows_core::Result<*mut u8>;
fn GetCurrentSubpictureAttributes(&self) -> ::windows_core::Result<*mut u8>;
fn GetCurrentVolumeInfo(&self, pulnumofvol: *mut u32, pulthisvolnum: *mut u32, pside: *mut DVD_DISC_SIDE, pulnumoftitles: *mut u32) -> ::windows_core::Result<()>;
fn GetDVDTextInfo(&self, ptextmanager: *mut u8, ulbufsize: u32, pulactualsize: *mut u32) -> ::windows_core::Result<()>;
fn GetPlayerParentalLevel(&self, pulparentallevel: *mut u32, pulcountrycode: *mut u32) -> ::windows_core::Result<()>;
fn GetNumberOfChapters(&self, ultitle: u32) -> ::windows_core::Result<u32>;
fn GetTitleParentalLevels(&self, ultitle: u32) -> ::windows_core::Result<u32>;
fn GetRoot(&self, proot: ::windows_core::PSTR, ulbufsize: u32, pulactualsize: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDvdInfo {}
#[cfg(feature = "Win32_Foundation")]
impl IDvdInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>() -> IDvdInfo_Vtbl {
unsafe extern "system" fn GetCurrentDomain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdomain: *mut DVD_DOMAIN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentDomain() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdomain, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plocation: *mut DVD_PLAYBACK_LOCATION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plocation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalTitleTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pultotaltime: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTotalTitleTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pultotaltime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulbuttonsavailable: *mut u32, pulcurrentbutton: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentButton(::core::mem::transmute_copy(&pulbuttonsavailable), ::core::mem::transmute_copy(&pulcurrentbutton)).into()
}
unsafe extern "system" fn GetCurrentAngle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulanglesavailable: *mut u32, pulcurrentangle: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentAngle(::core::mem::transmute_copy(&pulanglesavailable), ::core::mem::transmute_copy(&pulcurrentangle)).into()
}
unsafe extern "system" fn GetCurrentAudio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentAudio(::core::mem::transmute_copy(&pulstreamsavailable), ::core::mem::transmute_copy(&pulcurrentstream)).into()
}
unsafe extern "system" fn GetCurrentSubpicture<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32, pisdisabled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentSubpicture(::core::mem::transmute_copy(&pulstreamsavailable), ::core::mem::transmute_copy(&pulcurrentstream), ::core::mem::transmute_copy(&pisdisabled)).into()
}
unsafe extern "system" fn GetCurrentUOPS<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puop: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentUOPS() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAllSPRMs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pregisterarray: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllSPRMs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pregisterarray, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAllGPRMs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pregisterarray: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllGPRMs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pregisterarray, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAudioLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, planguage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAudioLanguage(::core::mem::transmute_copy(&ulstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planguage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSubpictureLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, planguage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSubpictureLanguage(::core::mem::transmute_copy(&ulstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planguage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTitleAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, patr: *mut DVD_ATR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTitleAttributes(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&patr)).into()
}
unsafe extern "system" fn GetVMGAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut DVD_ATR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVMGAttributes(::core::mem::transmute_copy(&patr)).into()
}
unsafe extern "system" fn GetCurrentVideoAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentVideoAttributes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(patr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentAudioAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentAudioAttributes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(patr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentSubpictureAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentSubpictureAttributes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(patr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentVolumeInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulnumofvol: *mut u32, pulthisvolnum: *mut u32, pside: *mut DVD_DISC_SIDE, pulnumoftitles: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentVolumeInfo(::core::mem::transmute_copy(&pulnumofvol), ::core::mem::transmute_copy(&pulthisvolnum), ::core::mem::transmute_copy(&pside), ::core::mem::transmute_copy(&pulnumoftitles)).into()
}
unsafe extern "system" fn GetDVDTextInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptextmanager: *mut u8, ulbufsize: u32, pulactualsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDTextInfo(::core::mem::transmute_copy(&ptextmanager), ::core::mem::transmute_copy(&ulbufsize), ::core::mem::transmute_copy(&pulactualsize)).into()
}
unsafe extern "system" fn GetPlayerParentalLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulparentallevel: *mut u32, pulcountrycode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPlayerParentalLevel(::core::mem::transmute_copy(&pulparentallevel), ::core::mem::transmute_copy(&pulcountrycode)).into()
}
unsafe extern "system" fn GetNumberOfChapters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pulnumberofchapters: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfChapters(::core::mem::transmute_copy(&ultitle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulnumberofchapters, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTitleParentalLevels<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pulparentallevels: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTitleParentalLevels(::core::mem::transmute_copy(&ultitle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulparentallevels, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetRoot<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, proot: ::windows_core::PSTR, ulbufsize: u32, pulactualsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRoot(::core::mem::transmute_copy(&proot), ::core::mem::transmute_copy(&ulbufsize), ::core::mem::transmute_copy(&pulactualsize)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCurrentDomain: GetCurrentDomain::<Identity, Impl, OFFSET>,
GetCurrentLocation: GetCurrentLocation::<Identity, Impl, OFFSET>,
GetTotalTitleTime: GetTotalTitleTime::<Identity, Impl, OFFSET>,
GetCurrentButton: GetCurrentButton::<Identity, Impl, OFFSET>,
GetCurrentAngle: GetCurrentAngle::<Identity, Impl, OFFSET>,
GetCurrentAudio: GetCurrentAudio::<Identity, Impl, OFFSET>,
GetCurrentSubpicture: GetCurrentSubpicture::<Identity, Impl, OFFSET>,
GetCurrentUOPS: GetCurrentUOPS::<Identity, Impl, OFFSET>,
GetAllSPRMs: GetAllSPRMs::<Identity, Impl, OFFSET>,
GetAllGPRMs: GetAllGPRMs::<Identity, Impl, OFFSET>,
GetAudioLanguage: GetAudioLanguage::<Identity, Impl, OFFSET>,
GetSubpictureLanguage: GetSubpictureLanguage::<Identity, Impl, OFFSET>,
GetTitleAttributes: GetTitleAttributes::<Identity, Impl, OFFSET>,
GetVMGAttributes: GetVMGAttributes::<Identity, Impl, OFFSET>,
GetCurrentVideoAttributes: GetCurrentVideoAttributes::<Identity, Impl, OFFSET>,
GetCurrentAudioAttributes: GetCurrentAudioAttributes::<Identity, Impl, OFFSET>,
GetCurrentSubpictureAttributes: GetCurrentSubpictureAttributes::<Identity, Impl, OFFSET>,
GetCurrentVolumeInfo: GetCurrentVolumeInfo::<Identity, Impl, OFFSET>,
GetDVDTextInfo: GetDVDTextInfo::<Identity, Impl, OFFSET>,
GetPlayerParentalLevel: GetPlayerParentalLevel::<Identity, Impl, OFFSET>,
GetNumberOfChapters: GetNumberOfChapters::<Identity, Impl, OFFSET>,
GetTitleParentalLevels: GetTitleParentalLevels::<Identity, Impl, OFFSET>,
GetRoot: GetRoot::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IDvdInfo2_Impl: Sized {
fn GetCurrentDomain(&self) -> ::windows_core::Result<DVD_DOMAIN>;
fn GetCurrentLocation(&self) -> ::windows_core::Result<DVD_PLAYBACK_LOCATION2>;
fn GetTotalTitleTime(&self, ptotaltime: *mut DVD_HMSF_TIMECODE, ultimecodeflags: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentButton(&self, pulbuttonsavailable: *mut u32, pulcurrentbutton: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentAngle(&self, pulanglesavailable: *mut u32, pulcurrentangle: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentAudio(&self, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32) -> ::windows_core::Result<()>;
fn GetCurrentSubpicture(&self, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32, pbisdisabled: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetCurrentUOPS(&self) -> ::windows_core::Result<u32>;
fn GetAllSPRMs(&self) -> ::windows_core::Result<*mut u16>;
fn GetAllGPRMs(&self) -> ::windows_core::Result<*mut u16>;
fn GetAudioLanguage(&self, ulstream: u32) -> ::windows_core::Result<u32>;
fn GetSubpictureLanguage(&self, ulstream: u32) -> ::windows_core::Result<u32>;
fn GetTitleAttributes(&self, ultitle: u32, pmenu: *mut DVD_MenuAttributes, ptitle: *mut DVD_TitleAttributes) -> ::windows_core::Result<()>;
fn GetVMGAttributes(&self, patr: *mut DVD_MenuAttributes) -> ::windows_core::Result<()>;
fn GetCurrentVideoAttributes(&self, patr: *mut DVD_VideoAttributes) -> ::windows_core::Result<()>;
fn GetAudioAttributes(&self, ulstream: u32, patr: *mut DVD_AudioAttributes) -> ::windows_core::Result<()>;
fn GetKaraokeAttributes(&self, ulstream: u32, pattributes: *mut DVD_KaraokeAttributes) -> ::windows_core::Result<()>;
fn GetSubpictureAttributes(&self, ulstream: u32) -> ::windows_core::Result<DVD_SubpictureAttributes>;
fn GetDVDVolumeInfo(&self, pulnumofvolumes: *mut u32, pulvolume: *mut u32, pside: *mut DVD_DISC_SIDE, pulnumoftitles: *mut u32) -> ::windows_core::Result<()>;
fn GetDVDTextNumberOfLanguages(&self) -> ::windows_core::Result<u32>;
fn GetDVDTextLanguageInfo(&self, ullangindex: u32, pulnumofstrings: *mut u32, plangcode: *mut u32, pbcharacterset: *mut DVD_TextCharSet) -> ::windows_core::Result<()>;
fn GetDVDTextStringAsNative(&self, ullangindex: u32, ulstringindex: u32, pbbuffer: *mut u8, ulmaxbuffersize: u32, pulactualsize: *mut u32, ptype: *mut DVD_TextStringType) -> ::windows_core::Result<()>;
fn GetDVDTextStringAsUnicode(&self, ullangindex: u32, ulstringindex: u32, pchwbuffer: ::windows_core::PWSTR, ulmaxbuffersize: u32, pulactualsize: *mut u32, ptype: *mut DVD_TextStringType) -> ::windows_core::Result<()>;
fn GetPlayerParentalLevel(&self, pulparentallevel: *mut u32, pbcountrycode: *mut u8) -> ::windows_core::Result<()>;
fn GetNumberOfChapters(&self, ultitle: u32) -> ::windows_core::Result<u32>;
fn GetTitleParentalLevels(&self, ultitle: u32) -> ::windows_core::Result<u32>;
fn GetDVDDirectory(&self, pszwpath: ::windows_core::PWSTR, ulmaxsize: u32, pulactualsize: *mut u32) -> ::windows_core::Result<()>;
fn IsAudioStreamEnabled(&self, ulstreamnum: u32) -> ::windows_core::Result<super::super::Foundation::BOOL>;
fn GetDiscID(&self, pszwpath: &::windows_core::PCWSTR) -> ::windows_core::Result<u64>;
fn GetState(&self) -> ::windows_core::Result<IDvdState>;
fn GetMenuLanguages(&self, planguages: *mut u32, ulmaxlanguages: u32, pulactuallanguages: *mut u32) -> ::windows_core::Result<()>;
fn GetButtonAtPosition(&self, point: &super::super::Foundation::POINT) -> ::windows_core::Result<u32>;
fn GetCmdFromEvent(&self, lparam1: isize) -> ::windows_core::Result<IDvdCmd>;
fn GetDefaultMenuLanguage(&self) -> ::windows_core::Result<u32>;
fn GetDefaultAudioLanguage(&self, planguage: *mut u32, paudioextension: *mut DVD_AUDIO_LANG_EXT) -> ::windows_core::Result<()>;
fn GetDefaultSubpictureLanguage(&self, planguage: *mut u32, psubpictureextension: *mut DVD_SUBPICTURE_LANG_EXT) -> ::windows_core::Result<()>;
fn GetDecoderCaps(&self, pcaps: *mut DVD_DECODER_CAPS) -> ::windows_core::Result<()>;
fn GetButtonRect(&self, ulbutton: u32) -> ::windows_core::Result<super::super::Foundation::RECT>;
fn IsSubpictureStreamEnabled(&self, ulstreamnum: u32) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IDvdInfo2 {}
#[cfg(feature = "Win32_Foundation")]
impl IDvdInfo2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>() -> IDvdInfo2_Vtbl {
unsafe extern "system" fn GetCurrentDomain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdomain: *mut DVD_DOMAIN) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentDomain() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdomain, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentLocation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plocation: *mut DVD_PLAYBACK_LOCATION2) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentLocation() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plocation, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTotalTitleTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptotaltime: *mut DVD_HMSF_TIMECODE, ultimecodeflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTotalTitleTime(::core::mem::transmute_copy(&ptotaltime), ::core::mem::transmute_copy(&ultimecodeflags)).into()
}
unsafe extern "system" fn GetCurrentButton<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulbuttonsavailable: *mut u32, pulcurrentbutton: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentButton(::core::mem::transmute_copy(&pulbuttonsavailable), ::core::mem::transmute_copy(&pulcurrentbutton)).into()
}
unsafe extern "system" fn GetCurrentAngle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulanglesavailable: *mut u32, pulcurrentangle: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentAngle(::core::mem::transmute_copy(&pulanglesavailable), ::core::mem::transmute_copy(&pulcurrentangle)).into()
}
unsafe extern "system" fn GetCurrentAudio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentAudio(::core::mem::transmute_copy(&pulstreamsavailable), ::core::mem::transmute_copy(&pulcurrentstream)).into()
}
unsafe extern "system" fn GetCurrentSubpicture<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulstreamsavailable: *mut u32, pulcurrentstream: *mut u32, pbisdisabled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentSubpicture(::core::mem::transmute_copy(&pulstreamsavailable), ::core::mem::transmute_copy(&pulcurrentstream), ::core::mem::transmute_copy(&pbisdisabled)).into()
}
unsafe extern "system" fn GetCurrentUOPS<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, puluops: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentUOPS() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(puluops, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAllSPRMs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pregisterarray: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllSPRMs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pregisterarray, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAllGPRMs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pregisterarray: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllGPRMs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pregisterarray, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAudioLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, planguage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAudioLanguage(::core::mem::transmute_copy(&ulstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planguage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSubpictureLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, planguage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSubpictureLanguage(::core::mem::transmute_copy(&ulstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planguage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTitleAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pmenu: *mut DVD_MenuAttributes, ptitle: *mut DVD_TitleAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTitleAttributes(::core::mem::transmute_copy(&ultitle), ::core::mem::transmute_copy(&pmenu), ::core::mem::transmute_copy(&ptitle)).into()
}
unsafe extern "system" fn GetVMGAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut DVD_MenuAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVMGAttributes(::core::mem::transmute_copy(&patr)).into()
}
unsafe extern "system" fn GetCurrentVideoAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, patr: *mut DVD_VideoAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentVideoAttributes(::core::mem::transmute_copy(&patr)).into()
}
unsafe extern "system" fn GetAudioAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, patr: *mut DVD_AudioAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAudioAttributes(::core::mem::transmute_copy(&ulstream), ::core::mem::transmute_copy(&patr)).into()
}
unsafe extern "system" fn GetKaraokeAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, pattributes: *mut DVD_KaraokeAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetKaraokeAttributes(::core::mem::transmute_copy(&ulstream), ::core::mem::transmute_copy(&pattributes)).into()
}
unsafe extern "system" fn GetSubpictureAttributes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstream: u32, patr: *mut DVD_SubpictureAttributes) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSubpictureAttributes(::core::mem::transmute_copy(&ulstream)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(patr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDVDVolumeInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulnumofvolumes: *mut u32, pulvolume: *mut u32, pside: *mut DVD_DISC_SIDE, pulnumoftitles: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDVolumeInfo(::core::mem::transmute_copy(&pulnumofvolumes), ::core::mem::transmute_copy(&pulvolume), ::core::mem::transmute_copy(&pside), ::core::mem::transmute_copy(&pulnumoftitles)).into()
}
unsafe extern "system" fn GetDVDTextNumberOfLanguages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulnumoflangs: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDVDTextNumberOfLanguages() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulnumoflangs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDVDTextLanguageInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullangindex: u32, pulnumofstrings: *mut u32, plangcode: *mut u32, pbcharacterset: *mut DVD_TextCharSet) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDTextLanguageInfo(::core::mem::transmute_copy(&ullangindex), ::core::mem::transmute_copy(&pulnumofstrings), ::core::mem::transmute_copy(&plangcode), ::core::mem::transmute_copy(&pbcharacterset)).into()
}
unsafe extern "system" fn GetDVDTextStringAsNative<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullangindex: u32, ulstringindex: u32, pbbuffer: *mut u8, ulmaxbuffersize: u32, pulactualsize: *mut u32, ptype: *mut DVD_TextStringType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDTextStringAsNative(::core::mem::transmute_copy(&ullangindex), ::core::mem::transmute_copy(&ulstringindex), ::core::mem::transmute_copy(&pbbuffer), ::core::mem::transmute_copy(&ulmaxbuffersize), ::core::mem::transmute_copy(&pulactualsize), ::core::mem::transmute_copy(&ptype)).into()
}
unsafe extern "system" fn GetDVDTextStringAsUnicode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ullangindex: u32, ulstringindex: u32, pchwbuffer: ::windows_core::PWSTR, ulmaxbuffersize: u32, pulactualsize: *mut u32, ptype: *mut DVD_TextStringType) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDTextStringAsUnicode(::core::mem::transmute_copy(&ullangindex), ::core::mem::transmute_copy(&ulstringindex), ::core::mem::transmute_copy(&pchwbuffer), ::core::mem::transmute_copy(&ulmaxbuffersize), ::core::mem::transmute_copy(&pulactualsize), ::core::mem::transmute_copy(&ptype)).into()
}
unsafe extern "system" fn GetPlayerParentalLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulparentallevel: *mut u32, pbcountrycode: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPlayerParentalLevel(::core::mem::transmute_copy(&pulparentallevel), ::core::mem::transmute_copy(&pbcountrycode)).into()
}
unsafe extern "system" fn GetNumberOfChapters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pulnumofchapters: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfChapters(::core::mem::transmute_copy(&ultitle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulnumofchapters, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTitleParentalLevels<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ultitle: u32, pulparentallevels: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTitleParentalLevels(::core::mem::transmute_copy(&ultitle)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulparentallevels, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDVDDirectory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszwpath: ::windows_core::PWSTR, ulmaxsize: u32, pulactualsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDVDDirectory(::core::mem::transmute_copy(&pszwpath), ::core::mem::transmute_copy(&ulmaxsize), ::core::mem::transmute_copy(&pulactualsize)).into()
}
unsafe extern "system" fn IsAudioStreamEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstreamnum: u32, pbenabled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsAudioStreamEnabled(::core::mem::transmute_copy(&ulstreamnum)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDiscID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszwpath: ::windows_core::PCWSTR, pulldiscid: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDiscID(::core::mem::transmute(&pszwpath)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulldiscid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstatedata: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstatedata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetMenuLanguages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planguages: *mut u32, ulmaxlanguages: u32, pulactuallanguages: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMenuLanguages(::core::mem::transmute_copy(&planguages), ::core::mem::transmute_copy(&ulmaxlanguages), ::core::mem::transmute_copy(&pulactuallanguages)).into()
}
unsafe extern "system" fn GetButtonAtPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, point: super::super::Foundation::POINT, pulbuttonindex: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetButtonAtPosition(::core::mem::transmute(&point)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulbuttonindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCmdFromEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lparam1: isize, pcmdobj: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCmdFromEvent(::core::mem::transmute_copy(&lparam1)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcmdobj, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultMenuLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planguage: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultMenuLanguage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(planguage, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDefaultAudioLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planguage: *mut u32, paudioextension: *mut DVD_AUDIO_LANG_EXT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultAudioLanguage(::core::mem::transmute_copy(&planguage), ::core::mem::transmute_copy(&paudioextension)).into()
}
unsafe extern "system" fn GetDefaultSubpictureLanguage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, planguage: *mut u32, psubpictureextension: *mut DVD_SUBPICTURE_LANG_EXT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultSubpictureLanguage(::core::mem::transmute_copy(&planguage), ::core::mem::transmute_copy(&psubpictureextension)).into()
}
unsafe extern "system" fn GetDecoderCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcaps: *mut DVD_DECODER_CAPS) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDecoderCaps(::core::mem::transmute_copy(&pcaps)).into()
}
unsafe extern "system" fn GetButtonRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbutton: u32, prect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetButtonRect(::core::mem::transmute_copy(&ulbutton)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsSubpictureStreamEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdInfo2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstreamnum: u32, pbenabled: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsSubpictureStreamEnabled(::core::mem::transmute_copy(&ulstreamnum)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbenabled, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCurrentDomain: GetCurrentDomain::<Identity, Impl, OFFSET>,
GetCurrentLocation: GetCurrentLocation::<Identity, Impl, OFFSET>,
GetTotalTitleTime: GetTotalTitleTime::<Identity, Impl, OFFSET>,
GetCurrentButton: GetCurrentButton::<Identity, Impl, OFFSET>,
GetCurrentAngle: GetCurrentAngle::<Identity, Impl, OFFSET>,
GetCurrentAudio: GetCurrentAudio::<Identity, Impl, OFFSET>,
GetCurrentSubpicture: GetCurrentSubpicture::<Identity, Impl, OFFSET>,
GetCurrentUOPS: GetCurrentUOPS::<Identity, Impl, OFFSET>,
GetAllSPRMs: GetAllSPRMs::<Identity, Impl, OFFSET>,
GetAllGPRMs: GetAllGPRMs::<Identity, Impl, OFFSET>,
GetAudioLanguage: GetAudioLanguage::<Identity, Impl, OFFSET>,
GetSubpictureLanguage: GetSubpictureLanguage::<Identity, Impl, OFFSET>,
GetTitleAttributes: GetTitleAttributes::<Identity, Impl, OFFSET>,
GetVMGAttributes: GetVMGAttributes::<Identity, Impl, OFFSET>,
GetCurrentVideoAttributes: GetCurrentVideoAttributes::<Identity, Impl, OFFSET>,
GetAudioAttributes: GetAudioAttributes::<Identity, Impl, OFFSET>,
GetKaraokeAttributes: GetKaraokeAttributes::<Identity, Impl, OFFSET>,
GetSubpictureAttributes: GetSubpictureAttributes::<Identity, Impl, OFFSET>,
GetDVDVolumeInfo: GetDVDVolumeInfo::<Identity, Impl, OFFSET>,
GetDVDTextNumberOfLanguages: GetDVDTextNumberOfLanguages::<Identity, Impl, OFFSET>,
GetDVDTextLanguageInfo: GetDVDTextLanguageInfo::<Identity, Impl, OFFSET>,
GetDVDTextStringAsNative: GetDVDTextStringAsNative::<Identity, Impl, OFFSET>,
GetDVDTextStringAsUnicode: GetDVDTextStringAsUnicode::<Identity, Impl, OFFSET>,
GetPlayerParentalLevel: GetPlayerParentalLevel::<Identity, Impl, OFFSET>,
GetNumberOfChapters: GetNumberOfChapters::<Identity, Impl, OFFSET>,
GetTitleParentalLevels: GetTitleParentalLevels::<Identity, Impl, OFFSET>,
GetDVDDirectory: GetDVDDirectory::<Identity, Impl, OFFSET>,
IsAudioStreamEnabled: IsAudioStreamEnabled::<Identity, Impl, OFFSET>,
GetDiscID: GetDiscID::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
GetMenuLanguages: GetMenuLanguages::<Identity, Impl, OFFSET>,
GetButtonAtPosition: GetButtonAtPosition::<Identity, Impl, OFFSET>,
GetCmdFromEvent: GetCmdFromEvent::<Identity, Impl, OFFSET>,
GetDefaultMenuLanguage: GetDefaultMenuLanguage::<Identity, Impl, OFFSET>,
GetDefaultAudioLanguage: GetDefaultAudioLanguage::<Identity, Impl, OFFSET>,
GetDefaultSubpictureLanguage: GetDefaultSubpictureLanguage::<Identity, Impl, OFFSET>,
GetDecoderCaps: GetDecoderCaps::<Identity, Impl, OFFSET>,
GetButtonRect: GetButtonRect::<Identity, Impl, OFFSET>,
IsSubpictureStreamEnabled: IsSubpictureStreamEnabled::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdInfo2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IDvdState_Impl: Sized {
fn GetDiscID(&self) -> ::windows_core::Result<u64>;
fn GetParentalLevel(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IDvdState {}
impl IDvdState_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdState_Impl, const OFFSET: isize>() -> IDvdState_Vtbl {
unsafe extern "system" fn GetDiscID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdState_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulluniqueid: *mut u64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDiscID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulluniqueid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetParentalLevel<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IDvdState_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulparentallevel: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetParentalLevel() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulparentallevel, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetDiscID: GetDiscID::<Identity, Impl, OFFSET>,
GetParentalLevel: GetParentalLevel::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IDvdState as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IESEvent_Impl: Sized {
fn GetEventId(&self) -> ::windows_core::Result<u32>;
fn GetEventType(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn SetCompletionStatus(&self, dwresult: u32) -> ::windows_core::Result<()>;
fn GetData(&self) -> ::windows_core::Result<*mut super::super::System::Com::SAFEARRAY>;
fn GetStringData(&self) -> ::windows_core::Result<::windows_core::BSTR>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IESEvent {}
#[cfg(feature = "Win32_System_Com")]
impl IESEvent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>() -> IESEvent_Vtbl {
unsafe extern "system" fn GetEventId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdweventid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdweventid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEventType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguideventtype: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguideventtype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCompletionStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwresult: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCompletionStatus(::core::mem::transmute_copy(&dwresult)).into()
}
unsafe extern "system" fn GetData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbdata: *mut *mut super::super::System::Com::SAFEARRAY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbdata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStringData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstrdata: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStringData() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbstrdata, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetEventId: GetEventId::<Identity, Impl, OFFSET>,
GetEventType: GetEventType::<Identity, Impl, OFFSET>,
SetCompletionStatus: SetCompletionStatus::<Identity, Impl, OFFSET>,
GetData: GetData::<Identity, Impl, OFFSET>,
GetStringData: GetStringData::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IESEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IESEvents_Impl: Sized {
fn OnESEventReceived(&self, guideventtype: &::windows_core::GUID, pesevent: ::core::option::Option<&IESEvent>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IESEvents {}
impl IESEvents_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvents_Impl, const OFFSET: isize>() -> IESEvents_Vtbl {
unsafe extern "system" fn OnESEventReceived<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IESEvents_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guideventtype: ::windows_core::GUID, pesevent: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnESEventReceived(::core::mem::transmute(&guideventtype), ::windows_core::from_raw_borrowed(&pesevent)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), OnESEventReceived: OnESEventReceived::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IESEvents as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IEncoderAPI_Impl: Sized {
fn IsSupported(&self, api: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn IsAvailable(&self, api: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetParameterRange(&self, api: *const ::windows_core::GUID, valuemin: *mut super::super::System::Variant::VARIANT, valuemax: *mut super::super::System::Variant::VARIANT, steppingdelta: *mut super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
fn GetParameterValues(&self, api: *const ::windows_core::GUID, values: *mut *mut super::super::System::Variant::VARIANT, valuescount: *mut u32) -> ::windows_core::Result<()>;
fn GetDefaultValue(&self, api: *const ::windows_core::GUID) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn GetValue(&self, api: *const ::windows_core::GUID) -> ::windows_core::Result<super::super::System::Variant::VARIANT>;
fn SetValue(&self, api: *const ::windows_core::GUID, value: *const super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IEncoderAPI {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IEncoderAPI_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>() -> IEncoderAPI_Vtbl {
unsafe extern "system" fn IsSupported<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsSupported(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn IsAvailable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsAvailable(::core::mem::transmute_copy(&api)).into()
}
unsafe extern "system" fn GetParameterRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID, valuemin: *mut super::super::System::Variant::VARIANT, valuemax: *mut super::super::System::Variant::VARIANT, steppingdelta: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParameterRange(::core::mem::transmute_copy(&api), ::core::mem::transmute_copy(&valuemin), ::core::mem::transmute_copy(&valuemax), ::core::mem::transmute_copy(&steppingdelta)).into()
}
unsafe extern "system" fn GetParameterValues<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID, values: *mut *mut super::super::System::Variant::VARIANT, valuescount: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParameterValues(::core::mem::transmute_copy(&api), ::core::mem::transmute_copy(&values), ::core::mem::transmute_copy(&valuescount)).into()
}
unsafe extern "system" fn GetDefaultValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID, value: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultValue(::core::mem::transmute_copy(&api)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID, value: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetValue(::core::mem::transmute_copy(&api)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(value, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetValue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEncoderAPI_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, api: *const ::windows_core::GUID, value: *const super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetValue(::core::mem::transmute_copy(&api), ::core::mem::transmute_copy(&value)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsSupported: IsSupported::<Identity, Impl, OFFSET>,
IsAvailable: IsAvailable::<Identity, Impl, OFFSET>,
GetParameterRange: GetParameterRange::<Identity, Impl, OFFSET>,
GetParameterValues: GetParameterValues::<Identity, Impl, OFFSET>,
GetDefaultValue: GetDefaultValue::<Identity, Impl, OFFSET>,
GetValue: GetValue::<Identity, Impl, OFFSET>,
SetValue: SetValue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEncoderAPI as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IEnumFilters_Impl: Sized {
fn Next(&self, cfilters: u32, ppfilter: *mut ::core::option::Option<IBaseFilter>, pcfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, cfilters: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumFilters>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IEnumFilters {}
#[cfg(feature = "Win32_System_Com")]
impl IEnumFilters_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFilters_Impl, const OFFSET: isize>() -> IEnumFilters_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilters: u32, ppfilter: *mut *mut ::core::ffi::c_void, pcfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&cfilters), ::core::mem::transmute_copy(&ppfilter), ::core::mem::transmute_copy(&pcfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilters: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&cfilters)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumFilters as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IEnumMediaTypes_Impl: Sized {
fn Next(&self, cmediatypes: u32, ppmediatypes: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pcfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, cmediatypes: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumMediaTypes>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IEnumMediaTypes {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IEnumMediaTypes_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumMediaTypes_Impl, const OFFSET: isize>() -> IEnumMediaTypes_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumMediaTypes_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmediatypes: u32, ppmediatypes: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE, pcfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&cmediatypes), ::core::mem::transmute_copy(&ppmediatypes), ::core::mem::transmute_copy(&pcfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumMediaTypes_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cmediatypes: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&cmediatypes)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumMediaTypes_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumMediaTypes_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumMediaTypes as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IEnumPIDMap_Impl: Sized {
fn Next(&self, crequest: u32, ppidmap: *mut PID_MAP, pcreceived: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, crecords: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumPIDMap>;
}
impl ::windows_core::RuntimeName for IEnumPIDMap {}
impl IEnumPIDMap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPIDMap_Impl, const OFFSET: isize>() -> IEnumPIDMap_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crequest: u32, ppidmap: *mut PID_MAP, pcreceived: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&crequest), ::core::mem::transmute_copy(&ppidmap), ::core::mem::transmute_copy(&pcreceived))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crecords: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&crecords)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienumpidmap: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppienumpidmap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumPIDMap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IEnumPins_Impl: Sized {
fn Next(&self, cpins: u32, pppins: *mut ::core::option::Option<IPin>, pcfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, cpins: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumPins>;
}
impl ::windows_core::RuntimeName for IEnumPins {}
impl IEnumPins_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPins_Impl, const OFFSET: isize>() -> IEnumPins_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPins_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cpins: u32, pppins: *mut *mut ::core::ffi::c_void, pcfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&cpins), ::core::mem::transmute_copy(&pppins), ::core::mem::transmute_copy(&pcfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPins_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cpins: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&cpins)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPins_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumPins_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumPins as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IEnumRegFilters_Impl: Sized {
fn Next(&self, cfilters: u32, apregfilter: *mut *mut REGFILTER, pcfetched: *mut u32) -> ::windows_core::HRESULT;
fn Skip(&self, cfilters: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumRegFilters>;
}
impl ::windows_core::RuntimeName for IEnumRegFilters {}
impl IEnumRegFilters_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumRegFilters_Impl, const OFFSET: isize>() -> IEnumRegFilters_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumRegFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilters: u32, apregfilter: *mut *mut REGFILTER, pcfetched: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&cfilters), ::core::mem::transmute_copy(&apregfilter), ::core::mem::transmute_copy(&pcfetched))
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumRegFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cfilters: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&cfilters)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumRegFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumRegFilters_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumRegFilters as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IEnumStreamIdMap_Impl: Sized {
fn Next(&self, crequest: u32, pstreamidmap: *mut STREAM_ID_MAP, pcreceived: *mut u32) -> ::windows_core::Result<()>;
fn Skip(&self, crecords: u32) -> ::windows_core::Result<()>;
fn Reset(&self) -> ::windows_core::Result<()>;
fn Clone(&self) -> ::windows_core::Result<IEnumStreamIdMap>;
}
impl ::windows_core::RuntimeName for IEnumStreamIdMap {}
impl IEnumStreamIdMap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumStreamIdMap_Impl, const OFFSET: isize>() -> IEnumStreamIdMap_Vtbl {
unsafe extern "system" fn Next<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumStreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crequest: u32, pstreamidmap: *mut STREAM_ID_MAP, pcreceived: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Next(::core::mem::transmute_copy(&crequest), ::core::mem::transmute_copy(&pstreamidmap), ::core::mem::transmute_copy(&pcreceived)).into()
}
unsafe extern "system" fn Skip<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumStreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, crecords: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Skip(::core::mem::transmute_copy(&crecords)).into()
}
unsafe extern "system" fn Reset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumStreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reset().into()
}
unsafe extern "system" fn Clone<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IEnumStreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienumstreamidmap: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Clone() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppienumstreamidmap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Next: Next::<Identity, Impl, OFFSET>,
Skip: Skip::<Identity, Impl, OFFSET>,
Reset: Reset::<Identity, Impl, OFFSET>,
Clone: Clone::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IEnumStreamIdMap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IFileSinkFilter_Impl: Sized {
fn SetFileName(&self, pszfilename: &::windows_core::PCWSTR, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn GetCurFile(&self, ppszfilename: *mut ::windows_core::PWSTR, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IFileSinkFilter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IFileSinkFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter_Impl, const OFFSET: isize>() -> IFileSinkFilter_Vtbl {
unsafe extern "system" fn SetFileName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilename: ::windows_core::PCWSTR, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFileName(::core::mem::transmute(&pszfilename), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn GetCurFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszfilename: *mut ::windows_core::PWSTR, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurFile(::core::mem::transmute_copy(&ppszfilename), ::core::mem::transmute_copy(&pmt)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetFileName: SetFileName::<Identity, Impl, OFFSET>,
GetCurFile: GetCurFile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSinkFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IFileSinkFilter2_Impl: Sized + IFileSinkFilter_Impl {
fn SetMode(&self, dwflags: u32) -> ::windows_core::Result<()>;
fn GetMode(&self) -> ::windows_core::Result<u32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IFileSinkFilter2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IFileSinkFilter2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter2_Impl, const OFFSET: isize>() -> IFileSinkFilter2_Vtbl {
unsafe extern "system" fn SetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMode(::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSinkFilter2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IFileSinkFilter_Vtbl::new::<Identity, Impl, OFFSET>(),
SetMode: SetMode::<Identity, Impl, OFFSET>,
GetMode: GetMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSinkFilter2 as ::windows_core::ComInterface>::IID || iid == &<IFileSinkFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IFileSourceFilter_Impl: Sized {
fn Load(&self, pszfilename: &::windows_core::PCWSTR, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn GetCurFile(&self, ppszfilename: *mut ::windows_core::PWSTR, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IFileSourceFilter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IFileSourceFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSourceFilter_Impl, const OFFSET: isize>() -> IFileSourceFilter_Vtbl {
unsafe extern "system" fn Load<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSourceFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszfilename: ::windows_core::PCWSTR, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Load(::core::mem::transmute(&pszfilename), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn GetCurFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFileSourceFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppszfilename: *mut ::windows_core::PWSTR, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurFile(::core::mem::transmute_copy(&ppszfilename), ::core::mem::transmute_copy(&pmt)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Load: Load::<Identity, Impl, OFFSET>,
GetCurFile: GetCurFile::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFileSourceFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IFilterChain_Impl: Sized {
fn StartChain(&self, pstartfilter: ::core::option::Option<&IBaseFilter>, pendfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn PauseChain(&self, pstartfilter: ::core::option::Option<&IBaseFilter>, pendfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn StopChain(&self, pstartfilter: ::core::option::Option<&IBaseFilter>, pendfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn RemoveChain(&self, pstartfilter: ::core::option::Option<&IBaseFilter>, pendfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IFilterChain {}
#[cfg(feature = "Win32_System_Com")]
impl IFilterChain_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterChain_Impl, const OFFSET: isize>() -> IFilterChain_Vtbl {
unsafe extern "system" fn StartChain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterChain_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstartfilter: *mut ::core::ffi::c_void, pendfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartChain(::windows_core::from_raw_borrowed(&pstartfilter), ::windows_core::from_raw_borrowed(&pendfilter)).into()
}
unsafe extern "system" fn PauseChain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterChain_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstartfilter: *mut ::core::ffi::c_void, pendfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PauseChain(::windows_core::from_raw_borrowed(&pstartfilter), ::windows_core::from_raw_borrowed(&pendfilter)).into()
}
unsafe extern "system" fn StopChain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterChain_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstartfilter: *mut ::core::ffi::c_void, pendfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopChain(::windows_core::from_raw_borrowed(&pstartfilter), ::windows_core::from_raw_borrowed(&pendfilter)).into()
}
unsafe extern "system" fn RemoveChain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterChain_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstartfilter: *mut ::core::ffi::c_void, pendfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveChain(::windows_core::from_raw_borrowed(&pstartfilter), ::windows_core::from_raw_borrowed(&pendfilter)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartChain: StartChain::<Identity, Impl, OFFSET>,
PauseChain: PauseChain::<Identity, Impl, OFFSET>,
StopChain: StopChain::<Identity, Impl, OFFSET>,
RemoveChain: RemoveChain::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterChain as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IFilterGraph_Impl: Sized {
fn AddFilter(&self, pfilter: ::core::option::Option<&IBaseFilter>, pname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn RemoveFilter(&self, pfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn EnumFilters(&self) -> ::windows_core::Result<IEnumFilters>;
fn FindFilterByName(&self, pname: &::windows_core::PCWSTR) -> ::windows_core::Result<IBaseFilter>;
fn ConnectDirect(&self, ppinout: ::core::option::Option<&IPin>, ppinin: ::core::option::Option<&IPin>, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn Reconnect(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
fn Disconnect(&self, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
fn SetDefaultSyncSource(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFilterGraph {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IFilterGraph_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>() -> IFilterGraph_Vtbl {
unsafe extern "system" fn AddFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void, pname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddFilter(::windows_core::from_raw_borrowed(&pfilter), ::core::mem::transmute(&pname)).into()
}
unsafe extern "system" fn RemoveFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveFilter(::windows_core::from_raw_borrowed(&pfilter)).into()
}
unsafe extern "system" fn EnumFilters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumFilters() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FindFilterByName<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pname: ::windows_core::PCWSTR, ppfilter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindFilterByName(::core::mem::transmute(&pname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfilter, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConnectDirect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void, ppinin: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectDirect(::windows_core::from_raw_borrowed(&ppinout), ::windows_core::from_raw_borrowed(&ppinin), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn Reconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reconnect(::windows_core::from_raw_borrowed(&ppin)).into()
}
unsafe extern "system" fn Disconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disconnect(::windows_core::from_raw_borrowed(&ppin)).into()
}
unsafe extern "system" fn SetDefaultSyncSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultSyncSource().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AddFilter: AddFilter::<Identity, Impl, OFFSET>,
RemoveFilter: RemoveFilter::<Identity, Impl, OFFSET>,
EnumFilters: EnumFilters::<Identity, Impl, OFFSET>,
FindFilterByName: FindFilterByName::<Identity, Impl, OFFSET>,
ConnectDirect: ConnectDirect::<Identity, Impl, OFFSET>,
Reconnect: Reconnect::<Identity, Impl, OFFSET>,
Disconnect: Disconnect::<Identity, Impl, OFFSET>,
SetDefaultSyncSource: SetDefaultSyncSource::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterGraph as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IFilterGraph2_Impl: Sized + IGraphBuilder_Impl {
fn AddSourceFilterForMoniker(&self, pmoniker: ::core::option::Option<&super::super::System::Com::IMoniker>, pctx: ::core::option::Option<&super::super::System::Com::IBindCtx>, lpcwstrfiltername: &::windows_core::PCWSTR) -> ::windows_core::Result<IBaseFilter>;
fn ReconnectEx(&self, ppin: ::core::option::Option<&IPin>, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn RenderEx(&self, ppinout: ::core::option::Option<&IPin>, dwflags: u32, pvcontext: *const u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFilterGraph2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IFilterGraph2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph2_Impl, const OFFSET: isize>() -> IFilterGraph2_Vtbl {
unsafe extern "system" fn AddSourceFilterForMoniker<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmoniker: *mut ::core::ffi::c_void, pctx: *mut ::core::ffi::c_void, lpcwstrfiltername: ::windows_core::PCWSTR, ppfilter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddSourceFilterForMoniker(::windows_core::from_raw_borrowed(&pmoniker), ::windows_core::from_raw_borrowed(&pctx), ::core::mem::transmute(&lpcwstrfiltername)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfilter, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReconnectEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReconnectEx(::windows_core::from_raw_borrowed(&ppin), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn RenderEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void, dwflags: u32, pvcontext: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderEx(::windows_core::from_raw_borrowed(&ppinout), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&pvcontext)).into()
}
Self {
base__: IGraphBuilder_Vtbl::new::<Identity, Impl, OFFSET>(),
AddSourceFilterForMoniker: AddSourceFilterForMoniker::<Identity, Impl, OFFSET>,
ReconnectEx: ReconnectEx::<Identity, Impl, OFFSET>,
RenderEx: RenderEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterGraph2 as ::windows_core::ComInterface>::IID || iid == &<IFilterGraph as ::windows_core::ComInterface>::IID || iid == &<IGraphBuilder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IFilterGraph3_Impl: Sized + IFilterGraph2_Impl {
fn SetSyncSourceEx(&self, pclockformostoffiltergraph: ::core::option::Option<&super::IReferenceClock>, pclockforfilter: ::core::option::Option<&super::IReferenceClock>, pfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFilterGraph3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IFilterGraph3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph3_Impl, const OFFSET: isize>() -> IFilterGraph3_Vtbl {
unsafe extern "system" fn SetSyncSourceEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterGraph3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclockformostoffiltergraph: *mut ::core::ffi::c_void, pclockforfilter: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncSourceEx(::windows_core::from_raw_borrowed(&pclockformostoffiltergraph), ::windows_core::from_raw_borrowed(&pclockforfilter), ::windows_core::from_raw_borrowed(&pfilter)).into()
}
Self { base__: IFilterGraph2_Vtbl::new::<Identity, Impl, OFFSET>(), SetSyncSourceEx: SetSyncSourceEx::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterGraph3 as ::windows_core::ComInterface>::IID || iid == &<IFilterGraph as ::windows_core::ComInterface>::IID || iid == &<IGraphBuilder as ::windows_core::ComInterface>::IID || iid == &<IFilterGraph2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IFilterInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn FindPin(&self, strpinid: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn VendorInfo(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Filter(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
fn Pins(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn IsFileSource(&self) -> ::windows_core::Result<i32>;
fn Filename(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetFilename(&self, strfilename: &::windows_core::BSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IFilterInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IFilterInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>() -> IFilterInfo_Vtbl {
unsafe extern "system" fn FindPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strpinid: ::std::mem::MaybeUninit<::windows_core::BSTR>, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FindPin(::core::mem::transmute(&strpinid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn VendorInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strvendorinfo: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.VendorInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strvendorinfo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Filter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Filter() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Pins<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Pins() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsFileSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbissource: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsFileSource() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbissource, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Filename<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstrfilename: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Filename() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstrfilename, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFilename<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strfilename: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFilename(::core::mem::transmute(&strfilename)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
FindPin: FindPin::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
VendorInfo: VendorInfo::<Identity, Impl, OFFSET>,
Filter: Filter::<Identity, Impl, OFFSET>,
Pins: Pins::<Identity, Impl, OFFSET>,
IsFileSource: IsFileSource::<Identity, Impl, OFFSET>,
Filename: Filename::<Identity, Impl, OFFSET>,
SetFilename: SetFilename::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFilterMapper_Impl: Sized {
fn RegisterFilter(&self, clsid: &::windows_core::GUID, name: &::windows_core::PCWSTR, dwmerit: u32) -> ::windows_core::Result<()>;
fn RegisterFilterInstance(&self, clsid: &::windows_core::GUID, name: &::windows_core::PCWSTR) -> ::windows_core::Result<::windows_core::GUID>;
fn RegisterPin(&self, filter: &::windows_core::GUID, name: &::windows_core::PCWSTR, brendered: super::super::Foundation::BOOL, boutput: super::super::Foundation::BOOL, bzero: super::super::Foundation::BOOL, bmany: super::super::Foundation::BOOL, connectstofilter: &::windows_core::GUID, connectstopin: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn RegisterPinType(&self, clsfilter: &::windows_core::GUID, strname: &::windows_core::PCWSTR, clsmajortype: &::windows_core::GUID, clssubtype: &::windows_core::GUID) -> ::windows_core::Result<()>;
fn UnregisterFilter(&self, filter: &::windows_core::GUID) -> ::windows_core::Result<()>;
fn UnregisterFilterInstance(&self, mrid: &::windows_core::GUID) -> ::windows_core::Result<()>;
fn UnregisterPin(&self, filter: &::windows_core::GUID, name: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn EnumMatchingFilters(&self, ppenum: *mut ::core::option::Option<IEnumRegFilters>, dwmerit: u32, binputneeded: super::super::Foundation::BOOL, clsinmaj: &::windows_core::GUID, clsinsub: &::windows_core::GUID, brender: super::super::Foundation::BOOL, boututneeded: super::super::Foundation::BOOL, clsoutmaj: &::windows_core::GUID, clsoutsub: &::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFilterMapper {}
#[cfg(feature = "Win32_Foundation")]
impl IFilterMapper_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>() -> IFilterMapper_Vtbl {
unsafe extern "system" fn RegisterFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: ::windows_core::GUID, name: ::windows_core::PCWSTR, dwmerit: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterFilter(::core::mem::transmute(&clsid), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&dwmerit)).into()
}
unsafe extern "system" fn RegisterFilterInstance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsid: ::windows_core::GUID, name: ::windows_core::PCWSTR, mrid: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterFilterInstance(::core::mem::transmute(&clsid), ::core::mem::transmute(&name)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(mrid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filter: ::windows_core::GUID, name: ::windows_core::PCWSTR, brendered: super::super::Foundation::BOOL, boutput: super::super::Foundation::BOOL, bzero: super::super::Foundation::BOOL, bmany: super::super::Foundation::BOOL, connectstofilter: ::windows_core::GUID, connectstopin: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterPin(::core::mem::transmute(&filter), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&brendered), ::core::mem::transmute_copy(&boutput), ::core::mem::transmute_copy(&bzero), ::core::mem::transmute_copy(&bmany), ::core::mem::transmute(&connectstofilter), ::core::mem::transmute(&connectstopin)).into()
}
unsafe extern "system" fn RegisterPinType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsfilter: ::windows_core::GUID, strname: ::windows_core::PCWSTR, clsmajortype: ::windows_core::GUID, clssubtype: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterPinType(::core::mem::transmute(&clsfilter), ::core::mem::transmute(&strname), ::core::mem::transmute(&clsmajortype), ::core::mem::transmute(&clssubtype)).into()
}
unsafe extern "system" fn UnregisterFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filter: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterFilter(::core::mem::transmute(&filter)).into()
}
unsafe extern "system" fn UnregisterFilterInstance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mrid: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterFilterInstance(::core::mem::transmute(&mrid)).into()
}
unsafe extern "system" fn UnregisterPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, filter: ::windows_core::GUID, name: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterPin(::core::mem::transmute(&filter), ::core::mem::transmute(&name)).into()
}
unsafe extern "system" fn EnumMatchingFilters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void, dwmerit: u32, binputneeded: super::super::Foundation::BOOL, clsinmaj: ::windows_core::GUID, clsinsub: ::windows_core::GUID, brender: super::super::Foundation::BOOL, boututneeded: super::super::Foundation::BOOL, clsoutmaj: ::windows_core::GUID, clsoutsub: ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumMatchingFilters(::core::mem::transmute_copy(&ppenum), ::core::mem::transmute_copy(&dwmerit), ::core::mem::transmute_copy(&binputneeded), ::core::mem::transmute(&clsinmaj), ::core::mem::transmute(&clsinsub), ::core::mem::transmute_copy(&brender), ::core::mem::transmute_copy(&boututneeded), ::core::mem::transmute(&clsoutmaj), ::core::mem::transmute(&clsoutsub)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
RegisterFilter: RegisterFilter::<Identity, Impl, OFFSET>,
RegisterFilterInstance: RegisterFilterInstance::<Identity, Impl, OFFSET>,
RegisterPin: RegisterPin::<Identity, Impl, OFFSET>,
RegisterPinType: RegisterPinType::<Identity, Impl, OFFSET>,
UnregisterFilter: UnregisterFilter::<Identity, Impl, OFFSET>,
UnregisterFilterInstance: UnregisterFilterInstance::<Identity, Impl, OFFSET>,
UnregisterPin: UnregisterPin::<Identity, Impl, OFFSET>,
EnumMatchingFilters: EnumMatchingFilters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterMapper as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IFilterMapper2_Impl: Sized {
fn CreateCategory(&self, clsidcategory: *const ::windows_core::GUID, dwcategorymerit: u32, description: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn UnregisterFilter(&self, pclsidcategory: *const ::windows_core::GUID, szinstance: &::windows_core::PCWSTR, filter: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn RegisterFilter(&self, clsidfilter: *const ::windows_core::GUID, name: &::windows_core::PCWSTR, ppmoniker: *mut ::core::option::Option<super::super::System::Com::IMoniker>, pclsidcategory: *const ::windows_core::GUID, szinstance: &::windows_core::PCWSTR, prf2: *const REGFILTER2) -> ::windows_core::Result<()>;
fn EnumMatchingFilters(&self, ppenum: *mut ::core::option::Option<super::super::System::Com::IEnumMoniker>, dwflags: u32, bexactmatch: super::super::Foundation::BOOL, dwmerit: u32, binputneeded: super::super::Foundation::BOOL, cinputtypes: u32, pinputtypes: *const ::windows_core::GUID, pmedin: *const REGPINMEDIUM, ppincategoryin: *const ::windows_core::GUID, brender: super::super::Foundation::BOOL, boutputneeded: super::super::Foundation::BOOL, coutputtypes: u32, poutputtypes: *const ::windows_core::GUID, pmedout: *const REGPINMEDIUM, ppincategoryout: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFilterMapper2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IFilterMapper2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper2_Impl, const OFFSET: isize>() -> IFilterMapper2_Vtbl {
unsafe extern "system" fn CreateCategory<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidcategory: *const ::windows_core::GUID, dwcategorymerit: u32, description: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CreateCategory(::core::mem::transmute_copy(&clsidcategory), ::core::mem::transmute_copy(&dwcategorymerit), ::core::mem::transmute(&description)).into()
}
unsafe extern "system" fn UnregisterFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclsidcategory: *const ::windows_core::GUID, szinstance: ::windows_core::PCWSTR, filter: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnregisterFilter(::core::mem::transmute_copy(&pclsidcategory), ::core::mem::transmute(&szinstance), ::core::mem::transmute_copy(&filter)).into()
}
unsafe extern "system" fn RegisterFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clsidfilter: *const ::windows_core::GUID, name: ::windows_core::PCWSTR, ppmoniker: *mut *mut ::core::ffi::c_void, pclsidcategory: *const ::windows_core::GUID, szinstance: ::windows_core::PCWSTR, prf2: *const REGFILTER2) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterFilter(::core::mem::transmute_copy(&clsidfilter), ::core::mem::transmute(&name), ::core::mem::transmute_copy(&ppmoniker), ::core::mem::transmute_copy(&pclsidcategory), ::core::mem::transmute(&szinstance), ::core::mem::transmute_copy(&prf2)).into()
}
unsafe extern "system" fn EnumMatchingFilters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void, dwflags: u32, bexactmatch: super::super::Foundation::BOOL, dwmerit: u32, binputneeded: super::super::Foundation::BOOL, cinputtypes: u32, pinputtypes: *const ::windows_core::GUID, pmedin: *const REGPINMEDIUM, ppincategoryin: *const ::windows_core::GUID, brender: super::super::Foundation::BOOL, boutputneeded: super::super::Foundation::BOOL, coutputtypes: u32, poutputtypes: *const ::windows_core::GUID, pmedout: *const REGPINMEDIUM, ppincategoryout: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumMatchingFilters(
::core::mem::transmute_copy(&ppenum),
::core::mem::transmute_copy(&dwflags),
::core::mem::transmute_copy(&bexactmatch),
::core::mem::transmute_copy(&dwmerit),
::core::mem::transmute_copy(&binputneeded),
::core::mem::transmute_copy(&cinputtypes),
::core::mem::transmute_copy(&pinputtypes),
::core::mem::transmute_copy(&pmedin),
::core::mem::transmute_copy(&ppincategoryin),
::core::mem::transmute_copy(&brender),
::core::mem::transmute_copy(&boutputneeded),
::core::mem::transmute_copy(&coutputtypes),
::core::mem::transmute_copy(&poutputtypes),
::core::mem::transmute_copy(&pmedout),
::core::mem::transmute_copy(&ppincategoryout),
)
.into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateCategory: CreateCategory::<Identity, Impl, OFFSET>,
UnregisterFilter: UnregisterFilter::<Identity, Impl, OFFSET>,
RegisterFilter: RegisterFilter::<Identity, Impl, OFFSET>,
EnumMatchingFilters: EnumMatchingFilters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterMapper2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IFilterMapper3_Impl: Sized + IFilterMapper2_Impl {
fn GetICreateDevEnum(&self) -> ::windows_core::Result<ICreateDevEnum>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IFilterMapper3 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IFilterMapper3_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper3_Impl, const OFFSET: isize>() -> IFilterMapper3_Vtbl {
unsafe extern "system" fn GetICreateDevEnum<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFilterMapper3_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetICreateDevEnum() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: IFilterMapper2_Vtbl::new::<Identity, Impl, OFFSET>(), GetICreateDevEnum: GetICreateDevEnum::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFilterMapper3 as ::windows_core::ComInterface>::IID || iid == &<IFilterMapper2 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IFrequencyMap_Impl: Sized {
fn get_FrequencyMapping(&self, ulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::Result<()>;
fn put_FrequencyMapping(&self, ulcount: u32, plist: *const u32) -> ::windows_core::Result<()>;
fn CountryCode(&self) -> ::windows_core::Result<u32>;
fn SetCountryCode(&self, ulcountrycode: u32) -> ::windows_core::Result<()>;
fn get_DefaultFrequencyMapping(&self, ulcountrycode: u32, pulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::Result<()>;
fn get_CountryCodeList(&self, pulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IFrequencyMap {}
impl IFrequencyMap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>() -> IFrequencyMap_Vtbl {
unsafe extern "system" fn get_FrequencyMapping<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_FrequencyMapping(::core::mem::transmute_copy(&ulcount), ::core::mem::transmute_copy(&ppullist)).into()
}
unsafe extern "system" fn put_FrequencyMapping<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcount: u32, plist: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_FrequencyMapping(::core::mem::transmute_copy(&ulcount), ::core::mem::transmute_copy(&plist)).into()
}
unsafe extern "system" fn CountryCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcountrycode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CountryCode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pulcountrycode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCountryCode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcountrycode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCountryCode(::core::mem::transmute_copy(&ulcountrycode)).into()
}
unsafe extern "system" fn get_DefaultFrequencyMapping<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulcountrycode: u32, pulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_DefaultFrequencyMapping(::core::mem::transmute_copy(&ulcountrycode), ::core::mem::transmute_copy(&pulcount), ::core::mem::transmute_copy(&ppullist)).into()
}
unsafe extern "system" fn get_CountryCodeList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFrequencyMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pulcount: *mut u32, ppullist: *mut *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_CountryCodeList(::core::mem::transmute_copy(&pulcount), ::core::mem::transmute_copy(&ppullist)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_FrequencyMapping: get_FrequencyMapping::<Identity, Impl, OFFSET>,
put_FrequencyMapping: put_FrequencyMapping::<Identity, Impl, OFFSET>,
CountryCode: CountryCode::<Identity, Impl, OFFSET>,
SetCountryCode: SetCountryCode::<Identity, Impl, OFFSET>,
get_DefaultFrequencyMapping: get_DefaultFrequencyMapping::<Identity, Impl, OFFSET>,
get_CountryCodeList: get_CountryCodeList::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFrequencyMap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IFullScreenVideo_Impl: Sized {
fn CountModes(&self) -> ::windows_core::Result<i32>;
fn GetModeInfo(&self, mode: i32, pwidth: *mut i32, pheight: *mut i32, pdepth: *mut i32) -> ::windows_core::Result<()>;
fn GetCurrentMode(&self) -> ::windows_core::Result<i32>;
fn IsModeAvailable(&self, mode: i32) -> ::windows_core::Result<()>;
fn IsModeEnabled(&self, mode: i32) -> ::windows_core::Result<()>;
fn SetEnabled(&self, mode: i32, benabled: i32) -> ::windows_core::Result<()>;
fn GetClipFactor(&self) -> ::windows_core::Result<i32>;
fn SetClipFactor(&self, clipfactor: i32) -> ::windows_core::Result<()>;
fn SetMessageDrain(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn GetMessageDrain(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn SetMonitor(&self, monitor: i32) -> ::windows_core::Result<()>;
fn GetMonitor(&self) -> ::windows_core::Result<i32>;
fn HideOnDeactivate(&self, hide: i32) -> ::windows_core::Result<()>;
fn IsHideOnDeactivate(&self) -> ::windows_core::Result<()>;
fn SetCaption(&self, strcaption: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn GetCaption(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetDefault(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IFullScreenVideo {}
#[cfg(feature = "Win32_Foundation")]
impl IFullScreenVideo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>() -> IFullScreenVideo_Vtbl {
unsafe extern "system" fn CountModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmodes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CountModes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmodes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetModeInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: i32, pwidth: *mut i32, pheight: *mut i32, pdepth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetModeInfo(::core::mem::transmute_copy(&mode), ::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight), ::core::mem::transmute_copy(&pdepth)).into()
}
unsafe extern "system" fn GetCurrentMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsModeAvailable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsModeAvailable(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn IsModeEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsModeEnabled(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn SetEnabled<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: i32, benabled: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetEnabled(::core::mem::transmute_copy(&mode), ::core::mem::transmute_copy(&benabled)).into()
}
unsafe extern "system" fn GetClipFactor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclipfactor: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetClipFactor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pclipfactor, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetClipFactor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clipfactor: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetClipFactor(::core::mem::transmute_copy(&clipfactor)).into()
}
unsafe extern "system" fn SetMessageDrain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMessageDrain(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn GetMessageDrain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMessageDrain() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitor: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMonitor(::core::mem::transmute_copy(&monitor)).into()
}
unsafe extern "system" fn GetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, monitor: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(monitor, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn HideOnDeactivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hide: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HideOnDeactivate(::core::mem::transmute_copy(&hide)).into()
}
unsafe extern "system" fn IsHideOnDeactivate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsHideOnDeactivate().into()
}
unsafe extern "system" fn SetCaption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strcaption: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCaption(::core::mem::transmute(&strcaption)).into()
}
unsafe extern "system" fn GetCaption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstrcaption: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCaption() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstrcaption, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDefault<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefault().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CountModes: CountModes::<Identity, Impl, OFFSET>,
GetModeInfo: GetModeInfo::<Identity, Impl, OFFSET>,
GetCurrentMode: GetCurrentMode::<Identity, Impl, OFFSET>,
IsModeAvailable: IsModeAvailable::<Identity, Impl, OFFSET>,
IsModeEnabled: IsModeEnabled::<Identity, Impl, OFFSET>,
SetEnabled: SetEnabled::<Identity, Impl, OFFSET>,
GetClipFactor: GetClipFactor::<Identity, Impl, OFFSET>,
SetClipFactor: SetClipFactor::<Identity, Impl, OFFSET>,
SetMessageDrain: SetMessageDrain::<Identity, Impl, OFFSET>,
GetMessageDrain: GetMessageDrain::<Identity, Impl, OFFSET>,
SetMonitor: SetMonitor::<Identity, Impl, OFFSET>,
GetMonitor: GetMonitor::<Identity, Impl, OFFSET>,
HideOnDeactivate: HideOnDeactivate::<Identity, Impl, OFFSET>,
IsHideOnDeactivate: IsHideOnDeactivate::<Identity, Impl, OFFSET>,
SetCaption: SetCaption::<Identity, Impl, OFFSET>,
GetCaption: GetCaption::<Identity, Impl, OFFSET>,
SetDefault: SetDefault::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFullScreenVideo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IFullScreenVideoEx_Impl: Sized + IFullScreenVideo_Impl {
fn SetAcceleratorTable(&self, hwnd: super::super::Foundation::HWND, haccel: super::super::UI::WindowsAndMessaging::HACCEL) -> ::windows_core::Result<()>;
fn GetAcceleratorTable(&self, phwnd: *mut super::super::Foundation::HWND, phaccel: *mut super::super::UI::WindowsAndMessaging::HACCEL) -> ::windows_core::Result<()>;
fn KeepPixelAspectRatio(&self, keepaspect: i32) -> ::windows_core::Result<()>;
fn IsKeepPixelAspectRatio(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IFullScreenVideoEx {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_UI_WindowsAndMessaging"))]
impl IFullScreenVideoEx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideoEx_Impl, const OFFSET: isize>() -> IFullScreenVideoEx_Vtbl {
unsafe extern "system" fn SetAcceleratorTable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideoEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, haccel: super::super::UI::WindowsAndMessaging::HACCEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAcceleratorTable(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&haccel)).into()
}
unsafe extern "system" fn GetAcceleratorTable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideoEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::HWND, phaccel: *mut super::super::UI::WindowsAndMessaging::HACCEL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAcceleratorTable(::core::mem::transmute_copy(&phwnd), ::core::mem::transmute_copy(&phaccel)).into()
}
unsafe extern "system" fn KeepPixelAspectRatio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideoEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, keepaspect: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.KeepPixelAspectRatio(::core::mem::transmute_copy(&keepaspect)).into()
}
unsafe extern "system" fn IsKeepPixelAspectRatio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IFullScreenVideoEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pkeepaspect: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsKeepPixelAspectRatio() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pkeepaspect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IFullScreenVideo_Vtbl::new::<Identity, Impl, OFFSET>(),
SetAcceleratorTable: SetAcceleratorTable::<Identity, Impl, OFFSET>,
GetAcceleratorTable: GetAcceleratorTable::<Identity, Impl, OFFSET>,
KeepPixelAspectRatio: KeepPixelAspectRatio::<Identity, Impl, OFFSET>,
IsKeepPixelAspectRatio: IsKeepPixelAspectRatio::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IFullScreenVideoEx as ::windows_core::ComInterface>::IID || iid == &<IFullScreenVideo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Registry\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Registry")]
pub trait IGetCapabilitiesKey_Impl: Sized {
fn GetCapabilitiesKey(&self) -> ::windows_core::Result<super::super::System::Registry::HKEY>;
}
#[cfg(feature = "Win32_System_Registry")]
impl ::windows_core::RuntimeName for IGetCapabilitiesKey {}
#[cfg(feature = "Win32_System_Registry")]
impl IGetCapabilitiesKey_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGetCapabilitiesKey_Impl, const OFFSET: isize>() -> IGetCapabilitiesKey_Vtbl {
unsafe extern "system" fn GetCapabilitiesKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGetCapabilitiesKey_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phkey: *mut super::super::System::Registry::HKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCapabilitiesKey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetCapabilitiesKey: GetCapabilitiesKey::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGetCapabilitiesKey as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IGraphBuilder_Impl: Sized + IFilterGraph_Impl {
fn Connect(&self, ppinout: ::core::option::Option<&IPin>, ppinin: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
fn Render(&self, ppinout: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
fn RenderFile(&self, lpcwstrfile: &::windows_core::PCWSTR, lpcwstrplaylist: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
fn AddSourceFilter(&self, lpcwstrfilename: &::windows_core::PCWSTR, lpcwstrfiltername: &::windows_core::PCWSTR) -> ::windows_core::Result<IBaseFilter>;
fn SetLogFile(&self, hfile: usize) -> ::windows_core::Result<()>;
fn Abort(&self) -> ::windows_core::Result<()>;
fn ShouldOperationContinue(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IGraphBuilder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IGraphBuilder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>() -> IGraphBuilder_Vtbl {
unsafe extern "system" fn Connect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void, ppinin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Connect(::windows_core::from_raw_borrowed(&ppinout), ::windows_core::from_raw_borrowed(&ppinin)).into()
}
unsafe extern "system" fn Render<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Render(::windows_core::from_raw_borrowed(&ppinout)).into()
}
unsafe extern "system" fn RenderFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpcwstrfile: ::windows_core::PCWSTR, lpcwstrplaylist: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderFile(::core::mem::transmute(&lpcwstrfile), ::core::mem::transmute(&lpcwstrplaylist)).into()
}
unsafe extern "system" fn AddSourceFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpcwstrfilename: ::windows_core::PCWSTR, lpcwstrfiltername: ::windows_core::PCWSTR, ppfilter: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddSourceFilter(::core::mem::transmute(&lpcwstrfilename), ::core::mem::transmute(&lpcwstrfiltername)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppfilter, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLogFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hfile: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLogFile(::core::mem::transmute_copy(&hfile)).into()
}
unsafe extern "system" fn Abort<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Abort().into()
}
unsafe extern "system" fn ShouldOperationContinue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ShouldOperationContinue().into()
}
Self {
base__: IFilterGraph_Vtbl::new::<Identity, Impl, OFFSET>(),
Connect: Connect::<Identity, Impl, OFFSET>,
Render: Render::<Identity, Impl, OFFSET>,
RenderFile: RenderFile::<Identity, Impl, OFFSET>,
AddSourceFilter: AddSourceFilter::<Identity, Impl, OFFSET>,
SetLogFile: SetLogFile::<Identity, Impl, OFFSET>,
Abort: Abort::<Identity, Impl, OFFSET>,
ShouldOperationContinue: ShouldOperationContinue::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGraphBuilder as ::windows_core::ComInterface>::IID || iid == &<IFilterGraph as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IGraphConfig_Impl: Sized {
fn Reconnect(&self, poutputpin: ::core::option::Option<&IPin>, pinputpin: ::core::option::Option<&IPin>, pmtfirstconnection: *const super::MediaFoundation::AM_MEDIA_TYPE, pusingfilter: ::core::option::Option<&IBaseFilter>, habortevent: super::super::Foundation::HANDLE, dwflags: u32) -> ::windows_core::Result<()>;
fn Reconfigure(&self, pcallback: ::core::option::Option<&IGraphConfigCallback>, pvcontext: *const ::core::ffi::c_void, dwflags: u32, habortevent: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn AddFilterToCache(&self, pfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn EnumCacheFilter(&self) -> ::windows_core::Result<IEnumFilters>;
fn RemoveFilterFromCache(&self, pfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<()>;
fn GetStartTime(&self) -> ::windows_core::Result<i64>;
fn PushThroughData(&self, poutputpin: ::core::option::Option<&IPin>, pconnection: ::core::option::Option<&IPinConnection>, heventabort: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn SetFilterFlags(&self, pfilter: ::core::option::Option<&IBaseFilter>, dwflags: u32) -> ::windows_core::Result<()>;
fn GetFilterFlags(&self, pfilter: ::core::option::Option<&IBaseFilter>) -> ::windows_core::Result<u32>;
fn RemoveFilterEx(&self, pfilter: ::core::option::Option<&IBaseFilter>, flags: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IGraphConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IGraphConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>() -> IGraphConfig_Vtbl {
unsafe extern "system" fn Reconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, poutputpin: *mut ::core::ffi::c_void, pinputpin: *mut ::core::ffi::c_void, pmtfirstconnection: *const super::MediaFoundation::AM_MEDIA_TYPE, pusingfilter: *mut ::core::ffi::c_void, habortevent: super::super::Foundation::HANDLE, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reconnect(::windows_core::from_raw_borrowed(&poutputpin), ::windows_core::from_raw_borrowed(&pinputpin), ::core::mem::transmute_copy(&pmtfirstconnection), ::windows_core::from_raw_borrowed(&pusingfilter), ::core::mem::transmute_copy(&habortevent), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn Reconfigure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcallback: *mut ::core::ffi::c_void, pvcontext: *const ::core::ffi::c_void, dwflags: u32, habortevent: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reconfigure(::windows_core::from_raw_borrowed(&pcallback), ::core::mem::transmute_copy(&pvcontext), ::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&habortevent)).into()
}
unsafe extern "system" fn AddFilterToCache<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddFilterToCache(::windows_core::from_raw_borrowed(&pfilter)).into()
}
unsafe extern "system" fn EnumCacheFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, penum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumCacheFilter() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(penum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveFilterFromCache<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveFilterFromCache(::windows_core::from_raw_borrowed(&pfilter)).into()
}
unsafe extern "system" fn GetStartTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prtstart: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStartTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prtstart, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PushThroughData<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, poutputpin: *mut ::core::ffi::c_void, pconnection: *mut ::core::ffi::c_void, heventabort: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PushThroughData(::windows_core::from_raw_borrowed(&poutputpin), ::windows_core::from_raw_borrowed(&pconnection), ::core::mem::transmute_copy(&heventabort)).into()
}
unsafe extern "system" fn SetFilterFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFilterFlags(::windows_core::from_raw_borrowed(&pfilter), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetFilterFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void, pdwflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFilterFlags(::windows_core::from_raw_borrowed(&pfilter)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RemoveFilterEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfilter: *mut ::core::ffi::c_void, flags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RemoveFilterEx(::windows_core::from_raw_borrowed(&pfilter), ::core::mem::transmute_copy(&flags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Reconnect: Reconnect::<Identity, Impl, OFFSET>,
Reconfigure: Reconfigure::<Identity, Impl, OFFSET>,
AddFilterToCache: AddFilterToCache::<Identity, Impl, OFFSET>,
EnumCacheFilter: EnumCacheFilter::<Identity, Impl, OFFSET>,
RemoveFilterFromCache: RemoveFilterFromCache::<Identity, Impl, OFFSET>,
GetStartTime: GetStartTime::<Identity, Impl, OFFSET>,
PushThroughData: PushThroughData::<Identity, Impl, OFFSET>,
SetFilterFlags: SetFilterFlags::<Identity, Impl, OFFSET>,
GetFilterFlags: GetFilterFlags::<Identity, Impl, OFFSET>,
RemoveFilterEx: RemoveFilterEx::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGraphConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IGraphConfigCallback_Impl: Sized {
fn Reconfigure(&self, pvcontext: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IGraphConfigCallback {}
impl IGraphConfigCallback_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfigCallback_Impl, const OFFSET: isize>() -> IGraphConfigCallback_Vtbl {
unsafe extern "system" fn Reconfigure<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphConfigCallback_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvcontext: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Reconfigure(::core::mem::transmute_copy(&pvcontext), ::core::mem::transmute_copy(&dwflags)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Reconfigure: Reconfigure::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGraphConfigCallback as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IGraphVersion_Impl: Sized {
fn QueryVersion(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IGraphVersion {}
impl IGraphVersion_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphVersion_Impl, const OFFSET: isize>() -> IGraphVersion_Vtbl {
unsafe extern "system" fn QueryVersion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IGraphVersion_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pversion: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryVersion() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pversion, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), QueryVersion: QueryVersion::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IGraphVersion as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IIPDVDec_Impl: Sized {
fn IPDisplay(&self) -> ::windows_core::Result<i32>;
fn SetIPDisplay(&self, displaypix: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IIPDVDec {}
impl IIPDVDec_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIPDVDec_Impl, const OFFSET: isize>() -> IIPDVDec_Vtbl {
unsafe extern "system" fn IPDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIPDVDec_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, displaypix: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IPDisplay() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(displaypix, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIPDisplay<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IIPDVDec_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, displaypix: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIPDisplay(::core::mem::transmute_copy(&displaypix)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IPDisplay: IPDisplay::<Identity, Impl, OFFSET>,
SetIPDisplay: SetIPDisplay::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IIPDVDec as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMPEG2PIDMap_Impl: Sized {
fn MapPID(&self, culpid: u32, pulpid: *const u32, mediasamplecontent: MEDIA_SAMPLE_CONTENT) -> ::windows_core::Result<()>;
fn UnmapPID(&self, culpid: u32, pulpid: *const u32) -> ::windows_core::Result<()>;
fn EnumPIDMap(&self) -> ::windows_core::Result<IEnumPIDMap>;
}
impl ::windows_core::RuntimeName for IMPEG2PIDMap {}
impl IMPEG2PIDMap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2PIDMap_Impl, const OFFSET: isize>() -> IMPEG2PIDMap_Vtbl {
unsafe extern "system" fn MapPID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2PIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, culpid: u32, pulpid: *const u32, mediasamplecontent: MEDIA_SAMPLE_CONTENT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MapPID(::core::mem::transmute_copy(&culpid), ::core::mem::transmute_copy(&pulpid), ::core::mem::transmute_copy(&mediasamplecontent)).into()
}
unsafe extern "system" fn UnmapPID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2PIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, culpid: u32, pulpid: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnmapPID(::core::mem::transmute_copy(&culpid), ::core::mem::transmute_copy(&pulpid)).into()
}
unsafe extern "system" fn EnumPIDMap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2PIDMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pienumpidmap: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumPIDMap() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pienumpidmap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
MapPID: MapPID::<Identity, Impl, OFFSET>,
UnmapPID: UnmapPID::<Identity, Impl, OFFSET>,
EnumPIDMap: EnumPIDMap::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMPEG2PIDMap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMPEG2StreamIdMap_Impl: Sized {
fn MapStreamId(&self, ulstreamid: u32, mediasamplecontent: u32, ulsubstreamfiltervalue: u32, idataoffset: i32) -> ::windows_core::Result<()>;
fn UnmapStreamId(&self, culstreamid: u32, pulstreamid: *const u32) -> ::windows_core::Result<()>;
fn EnumStreamIdMap(&self) -> ::windows_core::Result<IEnumStreamIdMap>;
}
impl ::windows_core::RuntimeName for IMPEG2StreamIdMap {}
impl IMPEG2StreamIdMap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2StreamIdMap_Impl, const OFFSET: isize>() -> IMPEG2StreamIdMap_Vtbl {
unsafe extern "system" fn MapStreamId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2StreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstreamid: u32, mediasamplecontent: u32, ulsubstreamfiltervalue: u32, idataoffset: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.MapStreamId(::core::mem::transmute_copy(&ulstreamid), ::core::mem::transmute_copy(&mediasamplecontent), ::core::mem::transmute_copy(&ulsubstreamfiltervalue), ::core::mem::transmute_copy(&idataoffset)).into()
}
unsafe extern "system" fn UnmapStreamId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2StreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, culstreamid: u32, pulstreamid: *const u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnmapStreamId(::core::mem::transmute_copy(&culstreamid), ::core::mem::transmute_copy(&pulstreamid)).into()
}
unsafe extern "system" fn EnumStreamIdMap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMPEG2StreamIdMap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppienumstreamidmap: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumStreamIdMap() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppienumstreamidmap, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
MapStreamId: MapStreamId::<Identity, Impl, OFFSET>,
UnmapStreamId: UnmapStreamId::<Identity, Impl, OFFSET>,
EnumStreamIdMap: EnumStreamIdMap::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMPEG2StreamIdMap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaControl_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Run(&self) -> ::windows_core::Result<()>;
fn Pause(&self) -> ::windows_core::Result<()>;
fn Stop(&self) -> ::windows_core::Result<()>;
fn GetState(&self, mstimeout: i32) -> ::windows_core::Result<i32>;
fn RenderFile(&self, strfilename: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn AddSourceFilter(&self, strfilename: &::windows_core::BSTR) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn FilterCollection(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn RegFilterCollection(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn StopWhenReady(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaControl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>() -> IMediaControl_Vtbl {
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Run().into()
}
unsafe extern "system" fn Pause<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Pause().into()
}
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mstimeout: i32, pfs: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState(::core::mem::transmute_copy(&mstimeout)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pfs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RenderFile<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strfilename: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenderFile(::core::mem::transmute(&strfilename)).into()
}
unsafe extern "system" fn AddSourceFilter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strfilename: ::std::mem::MaybeUninit<::windows_core::BSTR>, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AddSourceFilter(::core::mem::transmute(&strfilename)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FilterCollection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FilterCollection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegFilterCollection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegFilterCollection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StopWhenReady<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopWhenReady().into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Run: Run::<Identity, Impl, OFFSET>,
Pause: Pause::<Identity, Impl, OFFSET>,
Stop: Stop::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
RenderFile: RenderFile::<Identity, Impl, OFFSET>,
AddSourceFilter: AddSourceFilter::<Identity, Impl, OFFSET>,
FilterCollection: FilterCollection::<Identity, Impl, OFFSET>,
RegFilterCollection: RegFilterCollection::<Identity, Impl, OFFSET>,
StopWhenReady: StopWhenReady::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaControl as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaEvent_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn GetEventHandle(&self) -> ::windows_core::Result<isize>;
fn GetEvent(&self, leventcode: *mut i32, lparam1: *mut isize, lparam2: *mut isize, mstimeout: i32) -> ::windows_core::Result<()>;
fn WaitForCompletion(&self, mstimeout: i32) -> ::windows_core::Result<i32>;
fn CancelDefaultHandling(&self, levcode: i32) -> ::windows_core::Result<()>;
fn RestoreDefaultHandling(&self, levcode: i32) -> ::windows_core::Result<()>;
fn FreeEventParams(&self, levcode: i32, lparam1: isize, lparam2: isize) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaEvent {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaEvent_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>() -> IMediaEvent_Vtbl {
unsafe extern "system" fn GetEventHandle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hevent: *mut isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(hevent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, leventcode: *mut i32, lparam1: *mut isize, lparam2: *mut isize, mstimeout: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetEvent(::core::mem::transmute_copy(&leventcode), ::core::mem::transmute_copy(&lparam1), ::core::mem::transmute_copy(&lparam2), ::core::mem::transmute_copy(&mstimeout)).into()
}
unsafe extern "system" fn WaitForCompletion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mstimeout: i32, pevcode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WaitForCompletion(::core::mem::transmute_copy(&mstimeout)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pevcode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CancelDefaultHandling<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, levcode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CancelDefaultHandling(::core::mem::transmute_copy(&levcode)).into()
}
unsafe extern "system" fn RestoreDefaultHandling<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, levcode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RestoreDefaultHandling(::core::mem::transmute_copy(&levcode)).into()
}
unsafe extern "system" fn FreeEventParams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEvent_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, levcode: i32, lparam1: isize, lparam2: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FreeEventParams(::core::mem::transmute_copy(&levcode), ::core::mem::transmute_copy(&lparam1), ::core::mem::transmute_copy(&lparam2)).into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
GetEventHandle: GetEventHandle::<Identity, Impl, OFFSET>,
GetEvent: GetEvent::<Identity, Impl, OFFSET>,
WaitForCompletion: WaitForCompletion::<Identity, Impl, OFFSET>,
CancelDefaultHandling: CancelDefaultHandling::<Identity, Impl, OFFSET>,
RestoreDefaultHandling: RestoreDefaultHandling::<Identity, Impl, OFFSET>,
FreeEventParams: FreeEventParams::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaEvent as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaEventEx_Impl: Sized + IMediaEvent_Impl {
fn SetNotifyWindow(&self, hwnd: isize, lmsg: i32, linstancedata: isize) -> ::windows_core::Result<()>;
fn SetNotifyFlags(&self, lnonotifyflags: i32) -> ::windows_core::Result<()>;
fn GetNotifyFlags(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaEventEx {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaEventEx_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventEx_Impl, const OFFSET: isize>() -> IMediaEventEx_Vtbl {
unsafe extern "system" fn SetNotifyWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: isize, lmsg: i32, linstancedata: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyWindow(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&lmsg), ::core::mem::transmute_copy(&linstancedata)).into()
}
unsafe extern "system" fn SetNotifyFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lnonotifyflags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotifyFlags(::core::mem::transmute_copy(&lnonotifyflags)).into()
}
unsafe extern "system" fn GetNotifyFlags<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventEx_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplnonotifyflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNotifyFlags() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplnonotifyflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IMediaEvent_Vtbl::new::<Identity, Impl, OFFSET>(),
SetNotifyWindow: SetNotifyWindow::<Identity, Impl, OFFSET>,
SetNotifyFlags: SetNotifyFlags::<Identity, Impl, OFFSET>,
GetNotifyFlags: GetNotifyFlags::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaEventEx as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID || iid == &<IMediaEvent as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaEventSink_Impl: Sized {
fn Notify(&self, eventcode: i32, eventparam1: isize, eventparam2: isize) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMediaEventSink {}
impl IMediaEventSink_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventSink_Impl, const OFFSET: isize>() -> IMediaEventSink_Vtbl {
unsafe extern "system" fn Notify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaEventSink_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventcode: i32, eventparam1: isize, eventparam2: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Notify(::core::mem::transmute_copy(&eventcode), ::core::mem::transmute_copy(&eventparam1), ::core::mem::transmute_copy(&eventparam2)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Notify: Notify::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaEventSink as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IMediaFilter_Impl: Sized + super::super::System::Com::IPersist_Impl {
fn Stop(&self) -> ::windows_core::Result<()>;
fn Pause(&self) -> ::windows_core::Result<()>;
fn Run(&self, tstart: i64) -> ::windows_core::Result<()>;
fn GetState(&self, dwmillisecstimeout: u32) -> ::windows_core::Result<FILTER_STATE>;
fn SetSyncSource(&self, pclock: ::core::option::Option<&super::IReferenceClock>) -> ::windows_core::Result<()>;
fn GetSyncSource(&self) -> ::windows_core::Result<super::IReferenceClock>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IMediaFilter {}
#[cfg(feature = "Win32_System_Com")]
impl IMediaFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>() -> IMediaFilter_Vtbl {
unsafe extern "system" fn Stop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Stop().into()
}
unsafe extern "system" fn Pause<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Pause().into()
}
unsafe extern "system" fn Run<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tstart: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Run(::core::mem::transmute_copy(&tstart)).into()
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmillisecstimeout: u32, state: *mut FILTER_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState(::core::mem::transmute_copy(&dwmillisecstimeout)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(state, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSyncSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclock: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncSource(::windows_core::from_raw_borrowed(&pclock)).into()
}
unsafe extern "system" fn GetSyncSource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pclock: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSyncSource() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pclock, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IPersist_Vtbl::new::<Identity, Impl, OFFSET>(),
Stop: Stop::<Identity, Impl, OFFSET>,
Pause: Pause::<Identity, Impl, OFFSET>,
Run: Run::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
SetSyncSource: SetSyncSource::<Identity, Impl, OFFSET>,
GetSyncSource: GetSyncSource::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaFilter as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaParamInfo_Impl: Sized {
fn GetParamCount(&self) -> ::windows_core::Result<u32>;
fn GetParamInfo(&self, dwparamindex: u32, pinfo: *mut MP_PARAMINFO) -> ::windows_core::Result<()>;
fn GetParamText(&self, dwparamindex: u32) -> ::windows_core::Result<*mut u16>;
fn GetNumTimeFormats(&self) -> ::windows_core::Result<u32>;
fn GetSupportedTimeFormat(&self, dwformatindex: u32) -> ::windows_core::Result<::windows_core::GUID>;
fn GetCurrentTimeFormat(&self, pguidtimeformat: *mut ::windows_core::GUID, ptimedata: *mut u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMediaParamInfo {}
impl IMediaParamInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>() -> IMediaParamInfo_Vtbl {
unsafe extern "system" fn GetParamCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwparams: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetParamCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwparams, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetParamInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, pinfo: *mut MP_PARAMINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetParamInfo(::core::mem::transmute_copy(&dwparamindex), ::core::mem::transmute_copy(&pinfo)).into()
}
unsafe extern "system" fn GetParamText<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, ppwchtext: *mut *mut u16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetParamText(::core::mem::transmute_copy(&dwparamindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppwchtext, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetNumTimeFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumtimeformats: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumTimeFormats() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwnumtimeformats, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSupportedTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwformatindex: u32, pguidtimeformat: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSupportedTimeFormat(::core::mem::transmute_copy(&dwformatindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pguidtimeformat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParamInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguidtimeformat: *mut ::windows_core::GUID, ptimedata: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetCurrentTimeFormat(::core::mem::transmute_copy(&pguidtimeformat), ::core::mem::transmute_copy(&ptimedata)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetParamCount: GetParamCount::<Identity, Impl, OFFSET>,
GetParamInfo: GetParamInfo::<Identity, Impl, OFFSET>,
GetParamText: GetParamText::<Identity, Impl, OFFSET>,
GetNumTimeFormats: GetNumTimeFormats::<Identity, Impl, OFFSET>,
GetSupportedTimeFormat: GetSupportedTimeFormat::<Identity, Impl, OFFSET>,
GetCurrentTimeFormat: GetCurrentTimeFormat::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaParamInfo as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaParams_Impl: Sized {
fn GetParam(&self, dwparamindex: u32) -> ::windows_core::Result<f32>;
fn SetParam(&self, dwparamindex: u32, value: f32) -> ::windows_core::Result<()>;
fn AddEnvelope(&self, dwparamindex: u32, csegments: u32, penvelopesegments: *const MP_ENVELOPE_SEGMENT) -> ::windows_core::Result<()>;
fn FlushEnvelope(&self, dwparamindex: u32, reftimestart: i64, reftimeend: i64) -> ::windows_core::Result<()>;
fn SetTimeFormat(&self, guidtimeformat: &::windows_core::GUID, mptimedata: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMediaParams {}
impl IMediaParams_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>() -> IMediaParams_Vtbl {
unsafe extern "system" fn GetParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, pvalue: *mut f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetParam(::core::mem::transmute_copy(&dwparamindex)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvalue, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetParam<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, value: f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetParam(::core::mem::transmute_copy(&dwparamindex), ::core::mem::transmute_copy(&value)).into()
}
unsafe extern "system" fn AddEnvelope<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, csegments: u32, penvelopesegments: *const MP_ENVELOPE_SEGMENT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddEnvelope(::core::mem::transmute_copy(&dwparamindex), ::core::mem::transmute_copy(&csegments), ::core::mem::transmute_copy(&penvelopesegments)).into()
}
unsafe extern "system" fn FlushEnvelope<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwparamindex: u32, reftimestart: i64, reftimeend: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FlushEnvelope(::core::mem::transmute_copy(&dwparamindex), ::core::mem::transmute_copy(&reftimestart), ::core::mem::transmute_copy(&reftimeend)).into()
}
unsafe extern "system" fn SetTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaParams_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidtimeformat: ::windows_core::GUID, mptimedata: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTimeFormat(::core::mem::transmute(&guidtimeformat), ::core::mem::transmute_copy(&mptimedata)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetParam: GetParam::<Identity, Impl, OFFSET>,
SetParam: SetParam::<Identity, Impl, OFFSET>,
AddEnvelope: AddEnvelope::<Identity, Impl, OFFSET>,
FlushEnvelope: FlushEnvelope::<Identity, Impl, OFFSET>,
SetTimeFormat: SetTimeFormat::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaParams as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaPosition_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Duration(&self) -> ::windows_core::Result<f64>;
fn SetCurrentPosition(&self, lltime: f64) -> ::windows_core::Result<()>;
fn CurrentPosition(&self) -> ::windows_core::Result<f64>;
fn StopTime(&self) -> ::windows_core::Result<f64>;
fn SetStopTime(&self, lltime: f64) -> ::windows_core::Result<()>;
fn PrerollTime(&self) -> ::windows_core::Result<f64>;
fn SetPrerollTime(&self, lltime: f64) -> ::windows_core::Result<()>;
fn SetRate(&self, drate: f64) -> ::windows_core::Result<()>;
fn Rate(&self) -> ::windows_core::Result<f64>;
fn CanSeekForward(&self) -> ::windows_core::Result<i32>;
fn CanSeekBackward(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaPosition {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaPosition_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>() -> IMediaPosition_Vtbl {
unsafe extern "system" fn Duration<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plength: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Duration() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plength, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetCurrentPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lltime: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCurrentPosition(::core::mem::transmute_copy(&lltime)).into()
}
unsafe extern "system" fn CurrentPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plltime: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CurrentPosition() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plltime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn StopTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plltime: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.StopTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plltime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStopTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lltime: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStopTime(::core::mem::transmute_copy(&lltime)).into()
}
unsafe extern "system" fn PrerollTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plltime: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PrerollTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plltime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetPrerollTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lltime: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPrerollTime(::core::mem::transmute_copy(&lltime)).into()
}
unsafe extern "system" fn SetRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, drate: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRate(::core::mem::transmute_copy(&drate)).into()
}
unsafe extern "system" fn Rate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdrate: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Rate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdrate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CanSeekForward<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcanseekforward: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanSeekForward() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcanseekforward, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CanSeekBackward<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPosition_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcanseekbackward: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CanSeekBackward() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcanseekbackward, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Duration: Duration::<Identity, Impl, OFFSET>,
SetCurrentPosition: SetCurrentPosition::<Identity, Impl, OFFSET>,
CurrentPosition: CurrentPosition::<Identity, Impl, OFFSET>,
StopTime: StopTime::<Identity, Impl, OFFSET>,
SetStopTime: SetStopTime::<Identity, Impl, OFFSET>,
PrerollTime: PrerollTime::<Identity, Impl, OFFSET>,
SetPrerollTime: SetPrerollTime::<Identity, Impl, OFFSET>,
SetRate: SetRate::<Identity, Impl, OFFSET>,
Rate: Rate::<Identity, Impl, OFFSET>,
CanSeekForward: CanSeekForward::<Identity, Impl, OFFSET>,
CanSeekBackward: CanSeekBackward::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaPosition as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaPropertyBag_Impl: Sized + super::super::System::Com::StructuredStorage::IPropertyBag_Impl {
fn EnumProperty(&self, iproperty: u32, pvarpropertyname: *mut super::super::System::Variant::VARIANT, pvarpropertyvalue: *mut super::super::System::Variant::VARIANT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaPropertyBag {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaPropertyBag_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPropertyBag_Impl, const OFFSET: isize>() -> IMediaPropertyBag_Vtbl {
unsafe extern "system" fn EnumProperty<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, iproperty: u32, pvarpropertyname: *mut super::super::System::Variant::VARIANT, pvarpropertyvalue: *mut super::super::System::Variant::VARIANT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EnumProperty(::core::mem::transmute_copy(&iproperty), ::core::mem::transmute_copy(&pvarpropertyname), ::core::mem::transmute_copy(&pvarpropertyvalue)).into()
}
Self {
base__: super::super::System::Com::StructuredStorage::IPropertyBag_Vtbl::new::<Identity, Impl, OFFSET>(),
EnumProperty: EnumProperty::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaPropertyBag as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::StructuredStorage::IPropertyBag as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IMediaSample_Impl: Sized {
fn GetPointer(&self) -> ::windows_core::Result<*mut u8>;
fn GetSize(&self) -> i32;
fn GetTime(&self, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::Result<()>;
fn SetTime(&self, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::Result<()>;
fn IsSyncPoint(&self) -> ::windows_core::HRESULT;
fn SetSyncPoint(&self, bissyncpoint: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn IsPreroll(&self) -> ::windows_core::HRESULT;
fn SetPreroll(&self, bispreroll: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetActualDataLength(&self) -> i32;
fn SetActualDataLength(&self, __midl__imediasample0000: i32) -> ::windows_core::Result<()>;
fn GetMediaType(&self) -> ::windows_core::Result<*mut super::MediaFoundation::AM_MEDIA_TYPE>;
fn SetMediaType(&self, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn IsDiscontinuity(&self) -> ::windows_core::HRESULT;
fn SetDiscontinuity(&self, bdiscontinuity: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetMediaTime(&self, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::Result<()>;
fn SetMediaTime(&self, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IMediaSample {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IMediaSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>() -> IMediaSample_Vtbl {
unsafe extern "system" fn GetPointer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppbuffer: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPointer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppbuffer, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> i32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSize()
}
unsafe extern "system" fn GetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn SetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn IsSyncPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsSyncPoint()
}
unsafe extern "system" fn SetSyncPoint<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bissyncpoint: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSyncPoint(::core::mem::transmute_copy(&bissyncpoint)).into()
}
unsafe extern "system" fn IsPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsPreroll()
}
unsafe extern "system" fn SetPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bispreroll: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPreroll(::core::mem::transmute_copy(&bispreroll)).into()
}
unsafe extern "system" fn GetActualDataLength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> i32 {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetActualDataLength()
}
unsafe extern "system" fn SetActualDataLength<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, __midl__imediasample0000: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActualDataLength(::core::mem::transmute_copy(&__midl__imediasample0000)).into()
}
unsafe extern "system" fn GetMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmediatype: *mut *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMediaType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediatype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaType(::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn IsDiscontinuity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsDiscontinuity()
}
unsafe extern "system" fn SetDiscontinuity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bdiscontinuity: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDiscontinuity(::core::mem::transmute_copy(&bdiscontinuity)).into()
}
unsafe extern "system" fn GetMediaTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *mut i64, ptimeend: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMediaTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
unsafe extern "system" fn SetMediaTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptimestart: *const i64, ptimeend: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMediaTime(::core::mem::transmute_copy(&ptimestart), ::core::mem::transmute_copy(&ptimeend)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPointer: GetPointer::<Identity, Impl, OFFSET>,
GetSize: GetSize::<Identity, Impl, OFFSET>,
GetTime: GetTime::<Identity, Impl, OFFSET>,
SetTime: SetTime::<Identity, Impl, OFFSET>,
IsSyncPoint: IsSyncPoint::<Identity, Impl, OFFSET>,
SetSyncPoint: SetSyncPoint::<Identity, Impl, OFFSET>,
IsPreroll: IsPreroll::<Identity, Impl, OFFSET>,
SetPreroll: SetPreroll::<Identity, Impl, OFFSET>,
GetActualDataLength: GetActualDataLength::<Identity, Impl, OFFSET>,
SetActualDataLength: SetActualDataLength::<Identity, Impl, OFFSET>,
GetMediaType: GetMediaType::<Identity, Impl, OFFSET>,
SetMediaType: SetMediaType::<Identity, Impl, OFFSET>,
IsDiscontinuity: IsDiscontinuity::<Identity, Impl, OFFSET>,
SetDiscontinuity: SetDiscontinuity::<Identity, Impl, OFFSET>,
GetMediaTime: GetMediaTime::<Identity, Impl, OFFSET>,
SetMediaTime: SetMediaTime::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IMediaSample2_Impl: Sized + IMediaSample_Impl {
fn GetProperties(&self, cbproperties: u32, pbproperties: *mut u8) -> ::windows_core::Result<()>;
fn SetProperties(&self, cbproperties: u32, pbproperties: *const u8) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IMediaSample2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IMediaSample2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample2_Impl, const OFFSET: isize>() -> IMediaSample2_Vtbl {
unsafe extern "system" fn GetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbproperties: u32, pbproperties: *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProperties(::core::mem::transmute_copy(&cbproperties), ::core::mem::transmute_copy(&pbproperties)).into()
}
unsafe extern "system" fn SetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbproperties: u32, pbproperties: *const u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProperties(::core::mem::transmute_copy(&cbproperties), ::core::mem::transmute_copy(&pbproperties)).into()
}
Self {
base__: IMediaSample_Vtbl::new::<Identity, Impl, OFFSET>(),
GetProperties: GetProperties::<Identity, Impl, OFFSET>,
SetProperties: SetProperties::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaSample2 as ::windows_core::ComInterface>::IID || iid == &<IMediaSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaSample2Config_Impl: Sized {
fn GetSurface(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
}
impl ::windows_core::RuntimeName for IMediaSample2Config {}
impl IMediaSample2Config_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample2Config_Impl, const OFFSET: isize>() -> IMediaSample2Config_Vtbl {
unsafe extern "system" fn GetSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSample2Config_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirect3dsurface9: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdirect3dsurface9, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetSurface: GetSurface::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaSample2Config as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaSeeking_Impl: Sized {
fn GetCapabilities(&self) -> ::windows_core::Result<u32>;
fn CheckCapabilities(&self, pcapabilities: *mut u32) -> ::windows_core::Result<()>;
fn IsFormatSupported(&self, pformat: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn QueryPreferredFormat(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn GetTimeFormat(&self) -> ::windows_core::Result<::windows_core::GUID>;
fn IsUsingTimeFormat(&self, pformat: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetTimeFormat(&self, pformat: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDuration(&self) -> ::windows_core::Result<i64>;
fn GetStopPosition(&self) -> ::windows_core::Result<i64>;
fn GetCurrentPosition(&self) -> ::windows_core::Result<i64>;
fn ConvertTimeFormat(&self, ptarget: *mut i64, ptargetformat: *const ::windows_core::GUID, source: i64, psourceformat: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn SetPositions(&self, pcurrent: *mut i64, dwcurrentflags: u32, pstop: *mut i64, dwstopflags: u32) -> ::windows_core::Result<()>;
fn GetPositions(&self, pcurrent: *mut i64, pstop: *mut i64) -> ::windows_core::Result<()>;
fn GetAvailable(&self, pearliest: *mut i64, platest: *mut i64) -> ::windows_core::Result<()>;
fn SetRate(&self, drate: f64) -> ::windows_core::Result<()>;
fn GetRate(&self) -> ::windows_core::Result<f64>;
fn GetPreroll(&self) -> ::windows_core::Result<i64>;
}
impl ::windows_core::RuntimeName for IMediaSeeking {}
impl IMediaSeeking_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>() -> IMediaSeeking_Vtbl {
unsafe extern "system" fn GetCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcapabilities: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCapabilities() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcapabilities, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CheckCapabilities<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcapabilities: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CheckCapabilities(::core::mem::transmute_copy(&pcapabilities)).into()
}
unsafe extern "system" fn IsFormatSupported<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsFormatSupported(::core::mem::transmute_copy(&pformat)).into()
}
unsafe extern "system" fn QueryPreferredFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryPreferredFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pformat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTimeFormat() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pformat, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn IsUsingTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsUsingTimeFormat(::core::mem::transmute_copy(&pformat)).into()
}
unsafe extern "system" fn SetTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pformat: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTimeFormat(::core::mem::transmute_copy(&pformat)).into()
}
unsafe extern "system" fn GetDuration<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pduration: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDuration() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pduration, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetStopPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstop: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStopPosition() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetCurrentPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrent: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentPosition() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcurrent, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConvertTimeFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptarget: *mut i64, ptargetformat: *const ::windows_core::GUID, source: i64, psourceformat: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConvertTimeFormat(::core::mem::transmute_copy(&ptarget), ::core::mem::transmute_copy(&ptargetformat), ::core::mem::transmute_copy(&source), ::core::mem::transmute_copy(&psourceformat)).into()
}
unsafe extern "system" fn SetPositions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrent: *mut i64, dwcurrentflags: u32, pstop: *mut i64, dwstopflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPositions(::core::mem::transmute_copy(&pcurrent), ::core::mem::transmute_copy(&dwcurrentflags), ::core::mem::transmute_copy(&pstop), ::core::mem::transmute_copy(&dwstopflags)).into()
}
unsafe extern "system" fn GetPositions<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrent: *mut i64, pstop: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPositions(::core::mem::transmute_copy(&pcurrent), ::core::mem::transmute_copy(&pstop)).into()
}
unsafe extern "system" fn GetAvailable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pearliest: *mut i64, platest: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAvailable(::core::mem::transmute_copy(&pearliest), ::core::mem::transmute_copy(&platest)).into()
}
unsafe extern "system" fn SetRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, drate: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRate(::core::mem::transmute_copy(&drate)).into()
}
unsafe extern "system" fn GetRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdrate: *mut f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdrate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetPreroll<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaSeeking_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pllpreroll: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPreroll() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pllpreroll, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetCapabilities: GetCapabilities::<Identity, Impl, OFFSET>,
CheckCapabilities: CheckCapabilities::<Identity, Impl, OFFSET>,
IsFormatSupported: IsFormatSupported::<Identity, Impl, OFFSET>,
QueryPreferredFormat: QueryPreferredFormat::<Identity, Impl, OFFSET>,
GetTimeFormat: GetTimeFormat::<Identity, Impl, OFFSET>,
IsUsingTimeFormat: IsUsingTimeFormat::<Identity, Impl, OFFSET>,
SetTimeFormat: SetTimeFormat::<Identity, Impl, OFFSET>,
GetDuration: GetDuration::<Identity, Impl, OFFSET>,
GetStopPosition: GetStopPosition::<Identity, Impl, OFFSET>,
GetCurrentPosition: GetCurrentPosition::<Identity, Impl, OFFSET>,
ConvertTimeFormat: ConvertTimeFormat::<Identity, Impl, OFFSET>,
SetPositions: SetPositions::<Identity, Impl, OFFSET>,
GetPositions: GetPositions::<Identity, Impl, OFFSET>,
GetAvailable: GetAvailable::<Identity, Impl, OFFSET>,
SetRate: SetRate::<Identity, Impl, OFFSET>,
GetRate: GetRate::<Identity, Impl, OFFSET>,
GetPreroll: GetPreroll::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaSeeking as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMediaStream_Impl: Sized {
fn GetMultiMediaStream(&self) -> ::windows_core::Result<IMultiMediaStream>;
fn GetInformation(&self, ppurposeid: *mut ::windows_core::GUID, ptype: *mut STREAM_TYPE) -> ::windows_core::Result<()>;
fn SetSameFormat(&self, pstreamthathasdesiredformat: ::core::option::Option<&IMediaStream>, dwflags: u32) -> ::windows_core::Result<()>;
fn AllocateSample(&self, dwflags: u32) -> ::windows_core::Result<IStreamSample>;
fn CreateSharedSample(&self, pexistingsample: ::core::option::Option<&IStreamSample>, dwflags: u32) -> ::windows_core::Result<IStreamSample>;
fn SendEndOfStream(&self, dwflags: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMediaStream {}
impl IMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>() -> IMediaStream_Vtbl {
unsafe extern "system" fn GetMultiMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmultimediastream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMultiMediaStream() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmultimediastream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppurposeid: *mut ::windows_core::GUID, ptype: *mut STREAM_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInformation(::core::mem::transmute_copy(&ppurposeid), ::core::mem::transmute_copy(&ptype)).into()
}
unsafe extern "system" fn SetSameFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstreamthathasdesiredformat: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSameFormat(::windows_core::from_raw_borrowed(&pstreamthathasdesiredformat), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn AllocateSample<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, ppsample: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AllocateSample(::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppsample, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn CreateSharedSample<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pexistingsample: *mut ::core::ffi::c_void, dwflags: u32, ppnewsample: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateSharedSample(::windows_core::from_raw_borrowed(&pexistingsample), ::core::mem::transmute_copy(&dwflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppnewsample, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SendEndOfStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SendEndOfStream(::core::mem::transmute_copy(&dwflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMultiMediaStream: GetMultiMediaStream::<Identity, Impl, OFFSET>,
GetInformation: GetInformation::<Identity, Impl, OFFSET>,
SetSameFormat: SetSameFormat::<Identity, Impl, OFFSET>,
AllocateSample: AllocateSample::<Identity, Impl, OFFSET>,
CreateSharedSample: CreateSharedSample::<Identity, Impl, OFFSET>,
SendEndOfStream: SendEndOfStream::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
pub trait IMediaStreamFilter_Impl: Sized + IBaseFilter_Impl {
fn AddMediaStream(&self, pammediastream: ::core::option::Option<&IAMMediaStream>) -> ::windows_core::Result<()>;
fn GetMediaStream(&self, idpurpose: *const ::windows_core::GUID) -> ::windows_core::Result<IMediaStream>;
fn EnumMediaStreams(&self, index: i32) -> ::windows_core::Result<IMediaStream>;
fn SupportSeeking(&self, brenderer: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn ReferenceTimeToStreamTime(&self, ptime: *mut i64) -> ::windows_core::Result<()>;
fn GetCurrentStreamTime(&self) -> ::windows_core::Result<i64>;
fn WaitUntil(&self, waitstreamtime: i64) -> ::windows_core::Result<()>;
fn Flush(&self, bcanceleos: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn EndOfStream(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IMediaStreamFilter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com"))]
impl IMediaStreamFilter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>() -> IMediaStreamFilter_Vtbl {
unsafe extern "system" fn AddMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pammediastream: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AddMediaStream(::windows_core::from_raw_borrowed(&pammediastream)).into()
}
unsafe extern "system" fn GetMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idpurpose: *const ::windows_core::GUID, ppmediastream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMediaStream(::core::mem::transmute_copy(&idpurpose)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediastream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumMediaStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, ppmediastream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumMediaStreams(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediastream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SupportSeeking<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, brenderer: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SupportSeeking(::core::mem::transmute_copy(&brenderer)).into()
}
unsafe extern "system" fn ReferenceTimeToStreamTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptime: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReferenceTimeToStreamTime(::core::mem::transmute_copy(&ptime)).into()
}
unsafe extern "system" fn GetCurrentStreamTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrentstreamtime: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentStreamTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcurrentstreamtime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn WaitUntil<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, waitstreamtime: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.WaitUntil(::core::mem::transmute_copy(&waitstreamtime)).into()
}
unsafe extern "system" fn Flush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bcanceleos: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Flush(::core::mem::transmute_copy(&bcanceleos)).into()
}
unsafe extern "system" fn EndOfStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaStreamFilter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndOfStream().into()
}
Self {
base__: IBaseFilter_Vtbl::new::<Identity, Impl, OFFSET>(),
AddMediaStream: AddMediaStream::<Identity, Impl, OFFSET>,
GetMediaStream: GetMediaStream::<Identity, Impl, OFFSET>,
EnumMediaStreams: EnumMediaStreams::<Identity, Impl, OFFSET>,
SupportSeeking: SupportSeeking::<Identity, Impl, OFFSET>,
ReferenceTimeToStreamTime: ReferenceTimeToStreamTime::<Identity, Impl, OFFSET>,
GetCurrentStreamTime: GetCurrentStreamTime::<Identity, Impl, OFFSET>,
WaitUntil: WaitUntil::<Identity, Impl, OFFSET>,
Flush: Flush::<Identity, Impl, OFFSET>,
EndOfStream: EndOfStream::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaStreamFilter as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID || iid == &<IMediaFilter as ::windows_core::ComInterface>::IID || iid == &<IBaseFilter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IMediaTypeInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Type(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Subtype(&self) -> ::windows_core::Result<::windows_core::BSTR>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IMediaTypeInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IMediaTypeInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaTypeInfo_Impl, const OFFSET: isize>() -> IMediaTypeInfo_Vtbl {
unsafe extern "system" fn Type<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaTypeInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strtype: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Type() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strtype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Subtype<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMediaTypeInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strtype: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Subtype() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strtype, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Type: Type::<Identity, Impl, OFFSET>,
Subtype: Subtype::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMediaTypeInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMemAllocator_Impl: Sized {
fn SetProperties(&self, prequest: *const ALLOCATOR_PROPERTIES) -> ::windows_core::Result<ALLOCATOR_PROPERTIES>;
fn GetProperties(&self) -> ::windows_core::Result<ALLOCATOR_PROPERTIES>;
fn Commit(&self) -> ::windows_core::Result<()>;
fn Decommit(&self) -> ::windows_core::Result<()>;
fn GetBuffer(&self, ppbuffer: *mut ::core::option::Option<IMediaSample>, pstarttime: *const i64, pendtime: *const i64, dwflags: u32) -> ::windows_core::Result<()>;
fn ReleaseBuffer(&self, pbuffer: ::core::option::Option<&IMediaSample>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMemAllocator {}
impl IMemAllocator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>() -> IMemAllocator_Vtbl {
unsafe extern "system" fn SetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, prequest: *const ALLOCATOR_PROPERTIES, pactual: *mut ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SetProperties(::core::mem::transmute_copy(&prequest)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pactual, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetProperties<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprops: *mut ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetProperties() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pprops, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Commit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Commit().into()
}
unsafe extern "system" fn Decommit<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Decommit().into()
}
unsafe extern "system" fn GetBuffer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppbuffer: *mut *mut ::core::ffi::c_void, pstarttime: *const i64, pendtime: *const i64, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBuffer(::core::mem::transmute_copy(&ppbuffer), ::core::mem::transmute_copy(&pstarttime), ::core::mem::transmute_copy(&pendtime), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn ReleaseBuffer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbuffer: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseBuffer(::windows_core::from_raw_borrowed(&pbuffer)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetProperties: SetProperties::<Identity, Impl, OFFSET>,
GetProperties: GetProperties::<Identity, Impl, OFFSET>,
Commit: Commit::<Identity, Impl, OFFSET>,
Decommit: Decommit::<Identity, Impl, OFFSET>,
GetBuffer: GetBuffer::<Identity, Impl, OFFSET>,
ReleaseBuffer: ReleaseBuffer::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMemAllocator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMemAllocatorCallbackTemp_Impl: Sized + IMemAllocator_Impl {
fn SetNotify(&self, pnotify: ::core::option::Option<&IMemAllocatorNotifyCallbackTemp>) -> ::windows_core::Result<()>;
fn GetFreeCount(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IMemAllocatorCallbackTemp {}
impl IMemAllocatorCallbackTemp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocatorCallbackTemp_Impl, const OFFSET: isize>() -> IMemAllocatorCallbackTemp_Vtbl {
unsafe extern "system" fn SetNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocatorCallbackTemp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pnotify: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNotify(::windows_core::from_raw_borrowed(&pnotify)).into()
}
unsafe extern "system" fn GetFreeCount<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocatorCallbackTemp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, plbuffersfree: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetFreeCount() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(plbuffersfree, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: IMemAllocator_Vtbl::new::<Identity, Impl, OFFSET>(),
SetNotify: SetNotify::<Identity, Impl, OFFSET>,
GetFreeCount: GetFreeCount::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMemAllocatorCallbackTemp as ::windows_core::ComInterface>::IID || iid == &<IMemAllocator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMemAllocatorNotifyCallbackTemp_Impl: Sized {
fn NotifyRelease(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMemAllocatorNotifyCallbackTemp {}
impl IMemAllocatorNotifyCallbackTemp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocatorNotifyCallbackTemp_Impl, const OFFSET: isize>() -> IMemAllocatorNotifyCallbackTemp_Vtbl {
unsafe extern "system" fn NotifyRelease<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemAllocatorNotifyCallbackTemp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyRelease().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), NotifyRelease: NotifyRelease::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMemAllocatorNotifyCallbackTemp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IMemInputPin_Impl: Sized {
fn GetAllocator(&self) -> ::windows_core::Result<IMemAllocator>;
fn NotifyAllocator(&self, pallocator: ::core::option::Option<&IMemAllocator>, breadonly: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetAllocatorRequirements(&self) -> ::windows_core::Result<ALLOCATOR_PROPERTIES>;
fn Receive(&self, psample: ::core::option::Option<&IMediaSample>) -> ::windows_core::Result<()>;
fn ReceiveMultiple(&self, psamples: *const ::core::option::Option<IMediaSample>, nsamples: i32) -> ::windows_core::Result<i32>;
fn ReceiveCanBlock(&self) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IMemInputPin {}
#[cfg(feature = "Win32_Foundation")]
impl IMemInputPin_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>() -> IMemInputPin_Vtbl {
unsafe extern "system" fn GetAllocator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppallocator: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllocator() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppallocator, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn NotifyAllocator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pallocator: *mut ::core::ffi::c_void, breadonly: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyAllocator(::windows_core::from_raw_borrowed(&pallocator), ::core::mem::transmute_copy(&breadonly)).into()
}
unsafe extern "system" fn GetAllocatorRequirements<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pprops: *mut ALLOCATOR_PROPERTIES) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAllocatorRequirements() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pprops, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Receive<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psample: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Receive(::windows_core::from_raw_borrowed(&psample)).into()
}
unsafe extern "system" fn ReceiveMultiple<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psamples: *const *mut ::core::ffi::c_void, nsamples: i32, nsamplesprocessed: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ReceiveMultiple(::core::mem::transmute_copy(&psamples), ::core::mem::transmute_copy(&nsamples)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(nsamplesprocessed, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ReceiveCanBlock<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemInputPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReceiveCanBlock().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAllocator: GetAllocator::<Identity, Impl, OFFSET>,
NotifyAllocator: NotifyAllocator::<Identity, Impl, OFFSET>,
GetAllocatorRequirements: GetAllocatorRequirements::<Identity, Impl, OFFSET>,
Receive: Receive::<Identity, Impl, OFFSET>,
ReceiveMultiple: ReceiveMultiple::<Identity, Impl, OFFSET>,
ReceiveCanBlock: ReceiveCanBlock::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMemInputPin as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IMemoryData_Impl: Sized {
fn SetBuffer(&self, cbsize: u32, pbdata: *const u8, dwflags: u32) -> ::windows_core::Result<()>;
fn GetInfo(&self, pdwlength: *mut u32, ppbdata: *mut *mut u8, pcbactualdata: *mut u32) -> ::windows_core::Result<()>;
fn SetActual(&self, cbdatavalid: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IMemoryData {}
impl IMemoryData_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemoryData_Impl, const OFFSET: isize>() -> IMemoryData_Vtbl {
unsafe extern "system" fn SetBuffer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemoryData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbsize: u32, pbdata: *const u8, dwflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBuffer(::core::mem::transmute_copy(&cbsize), ::core::mem::transmute_copy(&pbdata), ::core::mem::transmute_copy(&dwflags)).into()
}
unsafe extern "system" fn GetInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemoryData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwlength: *mut u32, ppbdata: *mut *mut u8, pcbactualdata: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInfo(::core::mem::transmute_copy(&pdwlength), ::core::mem::transmute_copy(&ppbdata), ::core::mem::transmute_copy(&pcbactualdata)).into()
}
unsafe extern "system" fn SetActual<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMemoryData_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cbdatavalid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetActual(::core::mem::transmute_copy(&cbdatavalid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetBuffer: SetBuffer::<Identity, Impl, OFFSET>,
GetInfo: GetInfo::<Identity, Impl, OFFSET>,
SetActual: SetActual::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMemoryData as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IMixerOCX_Impl: Sized {
fn OnDisplayChange(&self, ulbitsperpixel: u32, ulscreenwidth: u32, ulscreenheight: u32) -> ::windows_core::Result<()>;
fn GetAspectRatio(&self, pdwpictaspectratiox: *mut u32, pdwpictaspectratioy: *mut u32) -> ::windows_core::Result<()>;
fn GetVideoSize(&self, pdwvideowidth: *mut u32, pdwvideoheight: *mut u32) -> ::windows_core::Result<()>;
fn GetStatus(&self) -> ::windows_core::Result<*mut u32>;
fn OnDraw(&self, hdcdraw: super::super::Graphics::Gdi::HDC, prcdraw: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn SetDrawRegion(&self, lppttopleftsc: *const super::super::Foundation::POINT, prcdrawcc: *const super::super::Foundation::RECT, lprcclip: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn Advise(&self, pmdns: ::core::option::Option<&IMixerOCXNotify>) -> ::windows_core::Result<()>;
fn UnAdvise(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IMixerOCX {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IMixerOCX_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>() -> IMixerOCX_Vtbl {
unsafe extern "system" fn OnDisplayChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulbitsperpixel: u32, ulscreenwidth: u32, ulscreenheight: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDisplayChange(::core::mem::transmute_copy(&ulbitsperpixel), ::core::mem::transmute_copy(&ulscreenwidth), ::core::mem::transmute_copy(&ulscreenheight)).into()
}
unsafe extern "system" fn GetAspectRatio<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwpictaspectratiox: *mut u32, pdwpictaspectratioy: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAspectRatio(::core::mem::transmute_copy(&pdwpictaspectratiox), ::core::mem::transmute_copy(&pdwpictaspectratioy)).into()
}
unsafe extern "system" fn GetVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwvideowidth: *mut u32, pdwvideoheight: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoSize(::core::mem::transmute_copy(&pdwvideowidth), ::core::mem::transmute_copy(&pdwvideoheight)).into()
}
unsafe extern "system" fn GetStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwstatus: *mut *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStatus() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwstatus, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn OnDraw<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hdcdraw: super::super::Graphics::Gdi::HDC, prcdraw: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDraw(::core::mem::transmute_copy(&hdcdraw), ::core::mem::transmute_copy(&prcdraw)).into()
}
unsafe extern "system" fn SetDrawRegion<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lppttopleftsc: *const super::super::Foundation::POINT, prcdrawcc: *const super::super::Foundation::RECT, lprcclip: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDrawRegion(::core::mem::transmute_copy(&lppttopleftsc), ::core::mem::transmute_copy(&prcdrawcc), ::core::mem::transmute_copy(&lprcclip)).into()
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmdns: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Advise(::windows_core::from_raw_borrowed(&pmdns)).into()
}
unsafe extern "system" fn UnAdvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCX_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnAdvise().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnDisplayChange: OnDisplayChange::<Identity, Impl, OFFSET>,
GetAspectRatio: GetAspectRatio::<Identity, Impl, OFFSET>,
GetVideoSize: GetVideoSize::<Identity, Impl, OFFSET>,
GetStatus: GetStatus::<Identity, Impl, OFFSET>,
OnDraw: OnDraw::<Identity, Impl, OFFSET>,
SetDrawRegion: SetDrawRegion::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
UnAdvise: UnAdvise::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMixerOCX as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IMixerOCXNotify_Impl: Sized {
fn OnInvalidateRect(&self, lpcrect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn OnStatusChange(&self, ulstatusflags: u32) -> ::windows_core::Result<()>;
fn OnDataChange(&self, uldataflags: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IMixerOCXNotify {}
#[cfg(feature = "Win32_Foundation")]
impl IMixerOCXNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCXNotify_Impl, const OFFSET: isize>() -> IMixerOCXNotify_Vtbl {
unsafe extern "system" fn OnInvalidateRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCXNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpcrect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnInvalidateRect(::core::mem::transmute_copy(&lpcrect)).into()
}
unsafe extern "system" fn OnStatusChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCXNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ulstatusflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnStatusChange(::core::mem::transmute_copy(&ulstatusflags)).into()
}
unsafe extern "system" fn OnDataChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerOCXNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, uldataflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDataChange(::core::mem::transmute_copy(&uldataflags)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnInvalidateRect: OnInvalidateRect::<Identity, Impl, OFFSET>,
OnStatusChange: OnStatusChange::<Identity, Impl, OFFSET>,
OnDataChange: OnDataChange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMixerOCXNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IMixerPinConfig_Impl: Sized {
fn SetRelativePosition(&self, dwleft: u32, dwtop: u32, dwright: u32, dwbottom: u32) -> ::windows_core::Result<()>;
fn GetRelativePosition(&self, pdwleft: *mut u32, pdwtop: *mut u32, pdwright: *mut u32, pdwbottom: *mut u32) -> ::windows_core::Result<()>;
fn SetZOrder(&self, dwzorder: u32) -> ::windows_core::Result<()>;
fn GetZOrder(&self, pdwzorder: *mut u32) -> ::windows_core::Result<()>;
fn SetColorKey(&self, pcolorkey: *mut COLORKEY) -> ::windows_core::Result<()>;
fn GetColorKey(&self, pcolorkey: *mut COLORKEY, pcolor: *mut u32) -> ::windows_core::Result<()>;
fn SetBlendingParameter(&self, dwblendingparameter: u32) -> ::windows_core::Result<()>;
fn GetBlendingParameter(&self, pdwblendingparameter: *mut u32) -> ::windows_core::Result<()>;
fn SetAspectRatioMode(&self, amaspectratiomode: AM_ASPECT_RATIO_MODE) -> ::windows_core::Result<()>;
fn GetAspectRatioMode(&self, pamaspectratiomode: *mut AM_ASPECT_RATIO_MODE) -> ::windows_core::Result<()>;
fn SetStreamTransparent(&self, bstreamtransparent: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetStreamTransparent(&self, pbstreamtransparent: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IMixerPinConfig {}
#[cfg(feature = "Win32_Foundation")]
impl IMixerPinConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>() -> IMixerPinConfig_Vtbl {
unsafe extern "system" fn SetRelativePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwleft: u32, dwtop: u32, dwright: u32, dwbottom: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRelativePosition(::core::mem::transmute_copy(&dwleft), ::core::mem::transmute_copy(&dwtop), ::core::mem::transmute_copy(&dwright), ::core::mem::transmute_copy(&dwbottom)).into()
}
unsafe extern "system" fn GetRelativePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwleft: *mut u32, pdwtop: *mut u32, pdwright: *mut u32, pdwbottom: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRelativePosition(::core::mem::transmute_copy(&pdwleft), ::core::mem::transmute_copy(&pdwtop), ::core::mem::transmute_copy(&pdwright), ::core::mem::transmute_copy(&pdwbottom)).into()
}
unsafe extern "system" fn SetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwzorder: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetZOrder(::core::mem::transmute_copy(&dwzorder)).into()
}
unsafe extern "system" fn GetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwzorder: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetZOrder(::core::mem::transmute_copy(&pdwzorder)).into()
}
unsafe extern "system" fn SetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *mut COLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColorKey(::core::mem::transmute_copy(&pcolorkey)).into()
}
unsafe extern "system" fn GetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *mut COLORKEY, pcolor: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetColorKey(::core::mem::transmute_copy(&pcolorkey), ::core::mem::transmute_copy(&pcolor)).into()
}
unsafe extern "system" fn SetBlendingParameter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwblendingparameter: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBlendingParameter(::core::mem::transmute_copy(&dwblendingparameter)).into()
}
unsafe extern "system" fn GetBlendingParameter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwblendingparameter: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBlendingParameter(::core::mem::transmute_copy(&pdwblendingparameter)).into()
}
unsafe extern "system" fn SetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, amaspectratiomode: AM_ASPECT_RATIO_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAspectRatioMode(::core::mem::transmute_copy(&amaspectratiomode)).into()
}
unsafe extern "system" fn GetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pamaspectratiomode: *mut AM_ASPECT_RATIO_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAspectRatioMode(::core::mem::transmute_copy(&pamaspectratiomode)).into()
}
unsafe extern "system" fn SetStreamTransparent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bstreamtransparent: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamTransparent(::core::mem::transmute_copy(&bstreamtransparent)).into()
}
unsafe extern "system" fn GetStreamTransparent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbstreamtransparent: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetStreamTransparent(::core::mem::transmute_copy(&pbstreamtransparent)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetRelativePosition: SetRelativePosition::<Identity, Impl, OFFSET>,
GetRelativePosition: GetRelativePosition::<Identity, Impl, OFFSET>,
SetZOrder: SetZOrder::<Identity, Impl, OFFSET>,
GetZOrder: GetZOrder::<Identity, Impl, OFFSET>,
SetColorKey: SetColorKey::<Identity, Impl, OFFSET>,
GetColorKey: GetColorKey::<Identity, Impl, OFFSET>,
SetBlendingParameter: SetBlendingParameter::<Identity, Impl, OFFSET>,
GetBlendingParameter: GetBlendingParameter::<Identity, Impl, OFFSET>,
SetAspectRatioMode: SetAspectRatioMode::<Identity, Impl, OFFSET>,
GetAspectRatioMode: GetAspectRatioMode::<Identity, Impl, OFFSET>,
SetStreamTransparent: SetStreamTransparent::<Identity, Impl, OFFSET>,
GetStreamTransparent: GetStreamTransparent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMixerPinConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IMixerPinConfig2_Impl: Sized + IMixerPinConfig_Impl {
fn SetOverlaySurfaceColorControls(&self, pcolorcontrol: *mut super::super::Graphics::DirectDraw::DDCOLORCONTROL) -> ::windows_core::Result<()>;
fn GetOverlaySurfaceColorControls(&self, pcolorcontrol: *mut super::super::Graphics::DirectDraw::DDCOLORCONTROL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IMixerPinConfig2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IMixerPinConfig2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig2_Impl, const OFFSET: isize>() -> IMixerPinConfig2_Vtbl {
unsafe extern "system" fn SetOverlaySurfaceColorControls<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorcontrol: *mut super::super::Graphics::DirectDraw::DDCOLORCONTROL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOverlaySurfaceColorControls(::core::mem::transmute_copy(&pcolorcontrol)).into()
}
unsafe extern "system" fn GetOverlaySurfaceColorControls<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMixerPinConfig2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorcontrol: *mut super::super::Graphics::DirectDraw::DDCOLORCONTROL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetOverlaySurfaceColorControls(::core::mem::transmute_copy(&pcolorcontrol)).into()
}
Self {
base__: IMixerPinConfig_Vtbl::new::<Identity, Impl, OFFSET>(),
SetOverlaySurfaceColorControls: SetOverlaySurfaceColorControls::<Identity, Impl, OFFSET>,
GetOverlaySurfaceColorControls: GetOverlaySurfaceColorControls::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMixerPinConfig2 as ::windows_core::ComInterface>::IID || iid == &<IMixerPinConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IMpeg2Demultiplexer_Impl: Sized {
fn CreateOutputPin(&self, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE, pszpinname: &::windows_core::PCWSTR) -> ::windows_core::Result<IPin>;
fn SetOutputPinMediaType(&self, pszpinname: &::windows_core::PCWSTR, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn DeleteOutputPin(&self, pszpinname: &::windows_core::PCWSTR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IMpeg2Demultiplexer {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IMpeg2Demultiplexer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpeg2Demultiplexer_Impl, const OFFSET: isize>() -> IMpeg2Demultiplexer_Vtbl {
unsafe extern "system" fn CreateOutputPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpeg2Demultiplexer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE, pszpinname: ::windows_core::PCWSTR, ppipin: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.CreateOutputPin(::core::mem::transmute_copy(&pmediatype), ::core::mem::transmute(&pszpinname)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppipin, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputPinMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpeg2Demultiplexer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpinname: ::windows_core::PCWSTR, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputPinMediaType(::core::mem::transmute(&pszpinname), ::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn DeleteOutputPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpeg2Demultiplexer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pszpinname: ::windows_core::PCWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DeleteOutputPin(::core::mem::transmute(&pszpinname)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
CreateOutputPin: CreateOutputPin::<Identity, Impl, OFFSET>,
SetOutputPinMediaType: SetOutputPinMediaType::<Identity, Impl, OFFSET>,
DeleteOutputPin: DeleteOutputPin::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMpeg2Demultiplexer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Media_Audio\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Media_Audio")]
pub trait IMpegAudioDecoder_Impl: Sized {
fn FrequencyDivider(&self) -> ::windows_core::Result<u32>;
fn SetFrequencyDivider(&self, divider: u32) -> ::windows_core::Result<()>;
fn DecoderAccuracy(&self) -> ::windows_core::Result<u32>;
fn SetDecoderAccuracy(&self, accuracy: u32) -> ::windows_core::Result<()>;
fn Stereo(&self) -> ::windows_core::Result<u32>;
fn SetStereo(&self, stereo: u32) -> ::windows_core::Result<()>;
fn DecoderWordSize(&self) -> ::windows_core::Result<u32>;
fn SetDecoderWordSize(&self, wordsize: u32) -> ::windows_core::Result<()>;
fn IntegerDecode(&self) -> ::windows_core::Result<u32>;
fn SetIntegerDecode(&self, intdecode: u32) -> ::windows_core::Result<()>;
fn DualMode(&self, pintdecode: *mut u32) -> ::windows_core::Result<()>;
fn SetDualMode(&self, intdecode: u32) -> ::windows_core::Result<()>;
fn AudioFormat(&self, lpfmt: *mut MPEG1WAVEFORMAT) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Media_Audio")]
impl ::windows_core::RuntimeName for IMpegAudioDecoder {}
#[cfg(feature = "Win32_Media_Audio")]
impl IMpegAudioDecoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>() -> IMpegAudioDecoder_Vtbl {
unsafe extern "system" fn FrequencyDivider<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdivider: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FrequencyDivider() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdivider, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFrequencyDivider<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, divider: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFrequencyDivider(::core::mem::transmute_copy(&divider)).into()
}
unsafe extern "system" fn DecoderAccuracy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, paccuracy: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DecoderAccuracy() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(paccuracy, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDecoderAccuracy<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, accuracy: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDecoderAccuracy(::core::mem::transmute_copy(&accuracy)).into()
}
unsafe extern "system" fn Stereo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstereo: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Stereo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pstereo, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStereo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, stereo: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStereo(::core::mem::transmute_copy(&stereo)).into()
}
unsafe extern "system" fn DecoderWordSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwordsize: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DecoderWordSize() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwordsize, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDecoderWordSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, wordsize: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDecoderWordSize(::core::mem::transmute_copy(&wordsize)).into()
}
unsafe extern "system" fn IntegerDecode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pintdecode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IntegerDecode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pintdecode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetIntegerDecode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, intdecode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetIntegerDecode(::core::mem::transmute_copy(&intdecode)).into()
}
unsafe extern "system" fn DualMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pintdecode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DualMode(::core::mem::transmute_copy(&pintdecode)).into()
}
unsafe extern "system" fn SetDualMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, intdecode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDualMode(::core::mem::transmute_copy(&intdecode)).into()
}
unsafe extern "system" fn AudioFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMpegAudioDecoder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpfmt: *mut MPEG1WAVEFORMAT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AudioFormat(::core::mem::transmute_copy(&lpfmt)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FrequencyDivider: FrequencyDivider::<Identity, Impl, OFFSET>,
SetFrequencyDivider: SetFrequencyDivider::<Identity, Impl, OFFSET>,
DecoderAccuracy: DecoderAccuracy::<Identity, Impl, OFFSET>,
SetDecoderAccuracy: SetDecoderAccuracy::<Identity, Impl, OFFSET>,
Stereo: Stereo::<Identity, Impl, OFFSET>,
SetStereo: SetStereo::<Identity, Impl, OFFSET>,
DecoderWordSize: DecoderWordSize::<Identity, Impl, OFFSET>,
SetDecoderWordSize: SetDecoderWordSize::<Identity, Impl, OFFSET>,
IntegerDecode: IntegerDecode::<Identity, Impl, OFFSET>,
SetIntegerDecode: SetIntegerDecode::<Identity, Impl, OFFSET>,
DualMode: DualMode::<Identity, Impl, OFFSET>,
SetDualMode: SetDualMode::<Identity, Impl, OFFSET>,
AudioFormat: AudioFormat::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMpegAudioDecoder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IMultiMediaStream_Impl: Sized {
fn GetInformation(&self, pdwflags: *mut MMSSF_GET_INFORMATION_FLAGS, pstreamtype: *mut STREAM_TYPE) -> ::windows_core::Result<()>;
fn GetMediaStream(&self, idpurpose: *const ::windows_core::GUID) -> ::windows_core::Result<IMediaStream>;
fn EnumMediaStreams(&self, index: i32) -> ::windows_core::Result<IMediaStream>;
fn GetState(&self) -> ::windows_core::Result<STREAM_STATE>;
fn SetState(&self, newstate: STREAM_STATE) -> ::windows_core::Result<()>;
fn GetTime(&self) -> ::windows_core::Result<i64>;
fn GetDuration(&self) -> ::windows_core::Result<i64>;
fn Seek(&self, seektime: i64) -> ::windows_core::Result<()>;
fn GetEndOfStreamEventHandle(&self) -> ::windows_core::Result<super::super::Foundation::HANDLE>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IMultiMediaStream {}
#[cfg(feature = "Win32_Foundation")]
impl IMultiMediaStream_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>() -> IMultiMediaStream_Vtbl {
unsafe extern "system" fn GetInformation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwflags: *mut MMSSF_GET_INFORMATION_FLAGS, pstreamtype: *mut STREAM_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetInformation(::core::mem::transmute_copy(&pdwflags), ::core::mem::transmute_copy(&pstreamtype)).into()
}
unsafe extern "system" fn GetMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idpurpose: *const ::windows_core::GUID, ppmediastream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMediaStream(::core::mem::transmute_copy(&idpurpose)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediastream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn EnumMediaStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, index: i32, ppmediastream: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumMediaStreams(::core::mem::transmute_copy(&index)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppmediastream, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrentstate: *mut STREAM_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcurrentstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, newstate: STREAM_STATE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetState(::core::mem::transmute_copy(&newstate)).into()
}
unsafe extern "system" fn GetTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcurrenttime: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetTime() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcurrenttime, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetDuration<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pduration: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDuration() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pduration, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Seek<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, seektime: i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Seek(::core::mem::transmute_copy(&seektime)).into()
}
unsafe extern "system" fn GetEndOfStreamEventHandle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IMultiMediaStream_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pheos: *mut super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetEndOfStreamEventHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pheos, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetInformation: GetInformation::<Identity, Impl, OFFSET>,
GetMediaStream: GetMediaStream::<Identity, Impl, OFFSET>,
EnumMediaStreams: EnumMediaStreams::<Identity, Impl, OFFSET>,
GetState: GetState::<Identity, Impl, OFFSET>,
SetState: SetState::<Identity, Impl, OFFSET>,
GetTime: GetTime::<Identity, Impl, OFFSET>,
GetDuration: GetDuration::<Identity, Impl, OFFSET>,
Seek: Seek::<Identity, Impl, OFFSET>,
GetEndOfStreamEventHandle: GetEndOfStreamEventHandle::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IMultiMediaStream as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IOverlay_Impl: Sized {
fn GetPalette(&self, pdwcolors: *mut u32, pppalette: *mut *mut super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::Result<()>;
fn SetPalette(&self, dwcolors: u32, ppalette: *const super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::Result<()>;
fn GetDefaultColorKey(&self) -> ::windows_core::Result<COLORKEY>;
fn GetColorKey(&self) -> ::windows_core::Result<COLORKEY>;
fn SetColorKey(&self, pcolorkey: *mut COLORKEY) -> ::windows_core::Result<()>;
fn GetWindowHandle(&self) -> ::windows_core::Result<super::super::Foundation::HWND>;
fn GetClipList(&self, psourcerect: *mut super::super::Foundation::RECT, pdestinationrect: *mut super::super::Foundation::RECT, pprgndata: *mut *mut super::super::Graphics::Gdi::RGNDATA) -> ::windows_core::Result<()>;
fn GetVideoPosition(&self, psourcerect: *mut super::super::Foundation::RECT, pdestinationrect: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn Advise(&self, poverlaynotify: ::core::option::Option<&IOverlayNotify>, dwinterests: u32) -> ::windows_core::Result<()>;
fn Unadvise(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IOverlay {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IOverlay_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>() -> IOverlay_Vtbl {
unsafe extern "system" fn GetPalette<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwcolors: *mut u32, pppalette: *mut *mut super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetPalette(::core::mem::transmute_copy(&pdwcolors), ::core::mem::transmute_copy(&pppalette)).into()
}
unsafe extern "system" fn SetPalette<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcolors: u32, ppalette: *const super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPalette(::core::mem::transmute_copy(&dwcolors), ::core::mem::transmute_copy(&ppalette)).into()
}
unsafe extern "system" fn GetDefaultColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *mut COLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultColorKey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcolorkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *mut COLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetColorKey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcolorkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *mut COLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColorKey(::core::mem::transmute_copy(&pcolorkey)).into()
}
unsafe extern "system" fn GetWindowHandle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phwnd: *mut super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetWindowHandle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(phwnd, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetClipList<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcerect: *mut super::super::Foundation::RECT, pdestinationrect: *mut super::super::Foundation::RECT, pprgndata: *mut *mut super::super::Graphics::Gdi::RGNDATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetClipList(::core::mem::transmute_copy(&psourcerect), ::core::mem::transmute_copy(&pdestinationrect), ::core::mem::transmute_copy(&pprgndata)).into()
}
unsafe extern "system" fn GetVideoPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcerect: *mut super::super::Foundation::RECT, pdestinationrect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoPosition(::core::mem::transmute_copy(&psourcerect), ::core::mem::transmute_copy(&pdestinationrect)).into()
}
unsafe extern "system" fn Advise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, poverlaynotify: *mut ::core::ffi::c_void, dwinterests: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Advise(::windows_core::from_raw_borrowed(&poverlaynotify), ::core::mem::transmute_copy(&dwinterests)).into()
}
unsafe extern "system" fn Unadvise<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlay_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Unadvise().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetPalette: GetPalette::<Identity, Impl, OFFSET>,
SetPalette: SetPalette::<Identity, Impl, OFFSET>,
GetDefaultColorKey: GetDefaultColorKey::<Identity, Impl, OFFSET>,
GetColorKey: GetColorKey::<Identity, Impl, OFFSET>,
SetColorKey: SetColorKey::<Identity, Impl, OFFSET>,
GetWindowHandle: GetWindowHandle::<Identity, Impl, OFFSET>,
GetClipList: GetClipList::<Identity, Impl, OFFSET>,
GetVideoPosition: GetVideoPosition::<Identity, Impl, OFFSET>,
Advise: Advise::<Identity, Impl, OFFSET>,
Unadvise: Unadvise::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOverlay as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IOverlayNotify_Impl: Sized {
fn OnPaletteChange(&self, dwcolors: u32, ppalette: *const super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::Result<()>;
fn OnClipChange(&self, psourcerect: *const super::super::Foundation::RECT, pdestinationrect: *const super::super::Foundation::RECT, prgndata: *const super::super::Graphics::Gdi::RGNDATA) -> ::windows_core::Result<()>;
fn OnColorKeyChange(&self, pcolorkey: *const COLORKEY) -> ::windows_core::Result<()>;
fn OnPositionChange(&self, psourcerect: *const super::super::Foundation::RECT, pdestinationrect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IOverlayNotify {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IOverlayNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify_Impl, const OFFSET: isize>() -> IOverlayNotify_Vtbl {
unsafe extern "system" fn OnPaletteChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwcolors: u32, ppalette: *const super::super::Graphics::Gdi::PALETTEENTRY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnPaletteChange(::core::mem::transmute_copy(&dwcolors), ::core::mem::transmute_copy(&ppalette)).into()
}
unsafe extern "system" fn OnClipChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcerect: *const super::super::Foundation::RECT, pdestinationrect: *const super::super::Foundation::RECT, prgndata: *const super::super::Graphics::Gdi::RGNDATA) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnClipChange(::core::mem::transmute_copy(&psourcerect), ::core::mem::transmute_copy(&pdestinationrect), ::core::mem::transmute_copy(&prgndata)).into()
}
unsafe extern "system" fn OnColorKeyChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcolorkey: *const COLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnColorKeyChange(::core::mem::transmute_copy(&pcolorkey)).into()
}
unsafe extern "system" fn OnPositionChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, psourcerect: *const super::super::Foundation::RECT, pdestinationrect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnPositionChange(::core::mem::transmute_copy(&psourcerect), ::core::mem::transmute_copy(&pdestinationrect)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
OnPaletteChange: OnPaletteChange::<Identity, Impl, OFFSET>,
OnClipChange: OnClipChange::<Identity, Impl, OFFSET>,
OnColorKeyChange: OnColorKeyChange::<Identity, Impl, OFFSET>,
OnPositionChange: OnPositionChange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOverlayNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IOverlayNotify2_Impl: Sized + IOverlayNotify_Impl {
fn OnDisplayChange(&self, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IOverlayNotify2 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IOverlayNotify2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify2_Impl, const OFFSET: isize>() -> IOverlayNotify2_Vtbl {
unsafe extern "system" fn OnDisplayChange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IOverlayNotify2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.OnDisplayChange(::core::mem::transmute_copy(&hmonitor)).into()
}
Self { base__: IOverlayNotify_Vtbl::new::<Identity, Impl, OFFSET>(), OnDisplayChange: OnDisplayChange::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IOverlayNotify2 as ::windows_core::ComInterface>::IID || iid == &<IOverlayNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com_StructuredStorage\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
pub trait IPersistMediaPropertyBag_Impl: Sized + super::super::System::Com::IPersist_Impl {
fn InitNew(&self) -> ::windows_core::Result<()>;
fn Load(&self, ppropbag: ::core::option::Option<&IMediaPropertyBag>, perrorlog: ::core::option::Option<&super::super::System::Com::IErrorLog>) -> ::windows_core::Result<()>;
fn Save(&self, ppropbag: ::core::option::Option<&IMediaPropertyBag>, fcleardirty: super::super::Foundation::BOOL, fsaveallproperties: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
impl ::windows_core::RuntimeName for IPersistMediaPropertyBag {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com_StructuredStorage"))]
impl IPersistMediaPropertyBag_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistMediaPropertyBag_Impl, const OFFSET: isize>() -> IPersistMediaPropertyBag_Vtbl {
unsafe extern "system" fn InitNew<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistMediaPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitNew().into()
}
unsafe extern "system" fn Load<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistMediaPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropbag: *mut ::core::ffi::c_void, perrorlog: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Load(::windows_core::from_raw_borrowed(&ppropbag), ::windows_core::from_raw_borrowed(&perrorlog)).into()
}
unsafe extern "system" fn Save<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPersistMediaPropertyBag_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppropbag: *mut ::core::ffi::c_void, fcleardirty: super::super::Foundation::BOOL, fsaveallproperties: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Save(::windows_core::from_raw_borrowed(&ppropbag), ::core::mem::transmute_copy(&fcleardirty), ::core::mem::transmute_copy(&fsaveallproperties)).into()
}
Self {
base__: super::super::System::Com::IPersist_Vtbl::new::<Identity, Impl, OFFSET>(),
InitNew: InitNew::<Identity, Impl, OFFSET>,
Load: Load::<Identity, Impl, OFFSET>,
Save: Save::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPersistMediaPropertyBag as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IPersist as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
pub trait IPin_Impl: Sized {
fn Connect(&self, preceivepin: ::core::option::Option<&IPin>, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn ReceiveConnection(&self, pconnector: ::core::option::Option<&IPin>, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn Disconnect(&self) -> ::windows_core::Result<()>;
fn ConnectedTo(&self) -> ::windows_core::Result<IPin>;
fn ConnectionMediaType(&self, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn QueryPinInfo(&self, pinfo: *mut PIN_INFO) -> ::windows_core::Result<()>;
fn QueryDirection(&self) -> ::windows_core::Result<PIN_DIRECTION>;
fn QueryId(&self) -> ::windows_core::Result<::windows_core::PWSTR>;
fn QueryAccept(&self, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn EnumMediaTypes(&self) -> ::windows_core::Result<IEnumMediaTypes>;
fn QueryInternalConnections(&self, appin: *mut ::core::option::Option<IPin>, npin: *mut u32) -> ::windows_core::Result<()>;
fn EndOfStream(&self) -> ::windows_core::Result<()>;
fn BeginFlush(&self) -> ::windows_core::Result<()>;
fn EndFlush(&self) -> ::windows_core::Result<()>;
fn NewSegment(&self, tstart: i64, tstop: i64, drate: f64) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl ::windows_core::RuntimeName for IPin {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_System_Com"))]
impl IPin_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>() -> IPin_Vtbl {
unsafe extern "system" fn Connect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, preceivepin: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Connect(::windows_core::from_raw_borrowed(&preceivepin), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn ReceiveConnection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pconnector: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReceiveConnection(::windows_core::from_raw_borrowed(&pconnector), ::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn Disconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disconnect().into()
}
unsafe extern "system" fn ConnectedTo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectedTo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppin, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConnectionMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmt: *mut super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectionMediaType(::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn QueryPinInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut PIN_INFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryPinInfo(::core::mem::transmute_copy(&pinfo)).into()
}
unsafe extern "system" fn QueryDirection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppindir: *mut PIN_DIRECTION) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryDirection() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppindir, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, id: *mut ::windows_core::PWSTR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.QueryId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(id, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryAccept<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryAccept(::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn EnumMediaTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppenum: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.EnumMediaTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppenum, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn QueryInternalConnections<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, appin: *mut *mut ::core::ffi::c_void, npin: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.QueryInternalConnections(::core::mem::transmute_copy(&appin), ::core::mem::transmute_copy(&npin)).into()
}
unsafe extern "system" fn EndOfStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndOfStream().into()
}
unsafe extern "system" fn BeginFlush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.BeginFlush().into()
}
unsafe extern "system" fn EndFlush<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.EndFlush().into()
}
unsafe extern "system" fn NewSegment<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPin_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, tstart: i64, tstop: i64, drate: f64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NewSegment(::core::mem::transmute_copy(&tstart), ::core::mem::transmute_copy(&tstop), ::core::mem::transmute_copy(&drate)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Connect: Connect::<Identity, Impl, OFFSET>,
ReceiveConnection: ReceiveConnection::<Identity, Impl, OFFSET>,
Disconnect: Disconnect::<Identity, Impl, OFFSET>,
ConnectedTo: ConnectedTo::<Identity, Impl, OFFSET>,
ConnectionMediaType: ConnectionMediaType::<Identity, Impl, OFFSET>,
QueryPinInfo: QueryPinInfo::<Identity, Impl, OFFSET>,
QueryDirection: QueryDirection::<Identity, Impl, OFFSET>,
QueryId: QueryId::<Identity, Impl, OFFSET>,
QueryAccept: QueryAccept::<Identity, Impl, OFFSET>,
EnumMediaTypes: EnumMediaTypes::<Identity, Impl, OFFSET>,
QueryInternalConnections: QueryInternalConnections::<Identity, Impl, OFFSET>,
EndOfStream: EndOfStream::<Identity, Impl, OFFSET>,
BeginFlush: BeginFlush::<Identity, Impl, OFFSET>,
EndFlush: EndFlush::<Identity, Impl, OFFSET>,
NewSegment: NewSegment::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPin as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
pub trait IPinConnection_Impl: Sized {
fn DynamicQueryAccept(&self, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn NotifyEndOfStream(&self, hnotifyevent: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
fn IsEndPin(&self) -> ::windows_core::Result<()>;
fn DynamicDisconnect(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IPinConnection {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation"))]
impl IPinConnection_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinConnection_Impl, const OFFSET: isize>() -> IPinConnection_Vtbl {
unsafe extern "system" fn DynamicQueryAccept<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinConnection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DynamicQueryAccept(::core::mem::transmute_copy(&pmt)).into()
}
unsafe extern "system" fn NotifyEndOfStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinConnection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hnotifyevent: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyEndOfStream(::core::mem::transmute_copy(&hnotifyevent)).into()
}
unsafe extern "system" fn IsEndPin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinConnection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsEndPin().into()
}
unsafe extern "system" fn DynamicDisconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinConnection_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DynamicDisconnect().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
DynamicQueryAccept: DynamicQueryAccept::<Identity, Impl, OFFSET>,
NotifyEndOfStream: NotifyEndOfStream::<Identity, Impl, OFFSET>,
IsEndPin: IsEndPin::<Identity, Impl, OFFSET>,
DynamicDisconnect: DynamicDisconnect::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPinConnection as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IPinFlowControl_Impl: Sized {
fn Block(&self, dwblockflags: u32, hevent: super::super::Foundation::HANDLE) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IPinFlowControl {}
#[cfg(feature = "Win32_Foundation")]
impl IPinFlowControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinFlowControl_Impl, const OFFSET: isize>() -> IPinFlowControl_Vtbl {
unsafe extern "system" fn Block<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinFlowControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwblockflags: u32, hevent: super::super::Foundation::HANDLE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Block(::core::mem::transmute_copy(&dwblockflags), ::core::mem::transmute_copy(&hevent)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Block: Block::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPinFlowControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IPinInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Pin(&self) -> ::windows_core::Result<::windows_core::IUnknown>;
fn ConnectedTo(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn ConnectionMediaType(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn FilterInfo(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Direction(&self) -> ::windows_core::Result<i32>;
fn PinID(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn MediaTypes(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
fn Connect(&self, ppin: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn ConnectDirect(&self, ppin: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn ConnectWithType(&self, ppin: ::core::option::Option<&::windows_core::IUnknown>, pmediatype: ::core::option::Option<&super::super::System::Com::IDispatch>) -> ::windows_core::Result<()>;
fn Disconnect(&self) -> ::windows_core::Result<()>;
fn Render(&self) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IPinInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IPinInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>() -> IPinInfo_Vtbl {
unsafe extern "system" fn Pin<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Pin() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConnectedTo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectedTo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn ConnectionMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.ConnectionMediaType() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FilterInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FilterInfo() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Direction<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppdirection: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Direction() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppdirection, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn PinID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strpinid: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.PinID() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strpinid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn MediaTypes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.MediaTypes() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Connect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Connect(::windows_core::from_raw_borrowed(&ppin)).into()
}
unsafe extern "system" fn ConnectDirect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectDirect(::windows_core::from_raw_borrowed(&ppin)).into()
}
unsafe extern "system" fn ConnectWithType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppin: *mut ::core::ffi::c_void, pmediatype: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ConnectWithType(::windows_core::from_raw_borrowed(&ppin), ::windows_core::from_raw_borrowed(&pmediatype)).into()
}
unsafe extern "system" fn Disconnect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Disconnect().into()
}
unsafe extern "system" fn Render<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IPinInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Render().into()
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Pin: Pin::<Identity, Impl, OFFSET>,
ConnectedTo: ConnectedTo::<Identity, Impl, OFFSET>,
ConnectionMediaType: ConnectionMediaType::<Identity, Impl, OFFSET>,
FilterInfo: FilterInfo::<Identity, Impl, OFFSET>,
Name: Name::<Identity, Impl, OFFSET>,
Direction: Direction::<Identity, Impl, OFFSET>,
PinID: PinID::<Identity, Impl, OFFSET>,
MediaTypes: MediaTypes::<Identity, Impl, OFFSET>,
Connect: Connect::<Identity, Impl, OFFSET>,
ConnectDirect: ConnectDirect::<Identity, Impl, OFFSET>,
ConnectWithType: ConnectWithType::<Identity, Impl, OFFSET>,
Disconnect: Disconnect::<Identity, Impl, OFFSET>,
Render: Render::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IPinInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IQualProp_Impl: Sized {
fn FramesDroppedInRenderer(&self) -> ::windows_core::Result<i32>;
fn FramesDrawn(&self) -> ::windows_core::Result<i32>;
fn AvgFrameRate(&self) -> ::windows_core::Result<i32>;
fn Jitter(&self) -> ::windows_core::Result<i32>;
fn AvgSyncOffset(&self) -> ::windows_core::Result<i32>;
fn DevSyncOffset(&self) -> ::windows_core::Result<i32>;
}
impl ::windows_core::RuntimeName for IQualProp {}
impl IQualProp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>() -> IQualProp_Vtbl {
unsafe extern "system" fn FramesDroppedInRenderer<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcframes: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FramesDroppedInRenderer() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcframes, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn FramesDrawn<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcframesdrawn: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FramesDrawn() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pcframesdrawn, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AvgFrameRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piavgframerate: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvgFrameRate() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piavgframerate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Jitter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ijitter: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Jitter() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ijitter, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AvgSyncOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piavg: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AvgSyncOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(piavg, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn DevSyncOffset<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualProp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pidev: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.DevSyncOffset() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pidev, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
FramesDroppedInRenderer: FramesDroppedInRenderer::<Identity, Impl, OFFSET>,
FramesDrawn: FramesDrawn::<Identity, Impl, OFFSET>,
AvgFrameRate: AvgFrameRate::<Identity, Impl, OFFSET>,
Jitter: Jitter::<Identity, Impl, OFFSET>,
AvgSyncOffset: AvgSyncOffset::<Identity, Impl, OFFSET>,
DevSyncOffset: DevSyncOffset::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQualProp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Com\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Com")]
pub trait IQualityControl_Impl: Sized {
fn Notify(&self, pself: ::core::option::Option<&IBaseFilter>, q: &Quality) -> ::windows_core::Result<()>;
fn SetSink(&self, piqc: ::core::option::Option<&IQualityControl>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_System_Com")]
impl ::windows_core::RuntimeName for IQualityControl {}
#[cfg(feature = "Win32_System_Com")]
impl IQualityControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualityControl_Impl, const OFFSET: isize>() -> IQualityControl_Vtbl {
unsafe extern "system" fn Notify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualityControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pself: *mut ::core::ffi::c_void, q: Quality) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Notify(::windows_core::from_raw_borrowed(&pself), ::core::mem::transmute(&q)).into()
}
unsafe extern "system" fn SetSink<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQualityControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piqc: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSink(::windows_core::from_raw_borrowed(&piqc)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Notify: Notify::<Identity, Impl, OFFSET>,
SetSink: SetSink::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQualityControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IQueueCommand_Impl: Sized {
fn InvokeAtStreamTime(&self, pcmd: *mut ::core::option::Option<IDeferredCommand>, time: f64, iid: *const ::windows_core::GUID, dispidmethod: i32, wflags: i16, cargs: i32, pdispparams: *const super::super::System::Variant::VARIANT, pvarresult: *mut super::super::System::Variant::VARIANT, puargerr: *mut i16) -> ::windows_core::Result<()>;
fn InvokeAtPresentationTime(&self, pcmd: *mut ::core::option::Option<IDeferredCommand>, time: f64, iid: *const ::windows_core::GUID, dispidmethod: i32, wflags: i16, cargs: i32, pdispparams: *const super::super::System::Variant::VARIANT, pvarresult: *mut super::super::System::Variant::VARIANT, puargerr: *mut i16) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IQueueCommand {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IQueueCommand_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueueCommand_Impl, const OFFSET: isize>() -> IQueueCommand_Vtbl {
unsafe extern "system" fn InvokeAtStreamTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueueCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcmd: *mut *mut ::core::ffi::c_void, time: f64, iid: *const ::windows_core::GUID, dispidmethod: i32, wflags: i16, cargs: i32, pdispparams: *const super::super::System::Variant::VARIANT, pvarresult: *mut super::super::System::Variant::VARIANT, puargerr: *mut i16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeAtStreamTime(::core::mem::transmute_copy(&pcmd), ::core::mem::transmute_copy(&time), ::core::mem::transmute_copy(&iid), ::core::mem::transmute_copy(&dispidmethod), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute_copy(&cargs), ::core::mem::transmute_copy(&pdispparams), ::core::mem::transmute_copy(&pvarresult), ::core::mem::transmute_copy(&puargerr)).into()
}
unsafe extern "system" fn InvokeAtPresentationTime<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IQueueCommand_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pcmd: *mut *mut ::core::ffi::c_void, time: f64, iid: *const ::windows_core::GUID, dispidmethod: i32, wflags: i16, cargs: i32, pdispparams: *const super::super::System::Variant::VARIANT, pvarresult: *mut super::super::System::Variant::VARIANT, puargerr: *mut i16) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InvokeAtPresentationTime(::core::mem::transmute_copy(&pcmd), ::core::mem::transmute_copy(&time), ::core::mem::transmute_copy(&iid), ::core::mem::transmute_copy(&dispidmethod), ::core::mem::transmute_copy(&wflags), ::core::mem::transmute_copy(&cargs), ::core::mem::transmute_copy(&pdispparams), ::core::mem::transmute_copy(&pvarresult), ::core::mem::transmute_copy(&puargerr)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InvokeAtStreamTime: InvokeAtStreamTime::<Identity, Impl, OFFSET>,
InvokeAtPresentationTime: InvokeAtPresentationTime::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IQueueCommand as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IRegFilterInfo_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn Name(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn Filter(&self) -> ::windows_core::Result<super::super::System::Com::IDispatch>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IRegFilterInfo {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IRegFilterInfo_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegFilterInfo_Impl, const OFFSET: isize>() -> IRegFilterInfo_Vtbl {
unsafe extern "system" fn Name<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strname: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Name() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strname, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn Filter<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegFilterInfo_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppunk: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Filter() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppunk, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
Name: Name::<Identity, Impl, OFFSET>,
Filter: Filter::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRegFilterInfo as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IRegisterServiceProvider_Impl: Sized {
fn RegisterService(&self, guidservice: *const ::windows_core::GUID, punkobject: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IRegisterServiceProvider {}
impl IRegisterServiceProvider_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegisterServiceProvider_Impl, const OFFSET: isize>() -> IRegisterServiceProvider_Vtbl {
unsafe extern "system" fn RegisterService<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IRegisterServiceProvider_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidservice: *const ::windows_core::GUID, punkobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RegisterService(::core::mem::transmute_copy(&guidservice), ::windows_core::from_raw_borrowed(&punkobject)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RegisterService: RegisterService::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IRegisterServiceProvider as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IResourceConsumer_Impl: Sized {
fn AcquireResource(&self, idresource: i32) -> ::windows_core::Result<()>;
fn ReleaseResource(&self, idresource: i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IResourceConsumer {}
impl IResourceConsumer_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceConsumer_Impl, const OFFSET: isize>() -> IResourceConsumer_Vtbl {
unsafe extern "system" fn AcquireResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceConsumer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AcquireResource(::core::mem::transmute_copy(&idresource)).into()
}
unsafe extern "system" fn ReleaseResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceConsumer_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseResource(::core::mem::transmute_copy(&idresource)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AcquireResource: AcquireResource::<Identity, Impl, OFFSET>,
ReleaseResource: ReleaseResource::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IResourceConsumer as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IResourceManager_Impl: Sized {
fn Register(&self, pname: &::windows_core::PCWSTR, cresource: i32) -> ::windows_core::Result<i32>;
fn RegisterGroup(&self, pname: &::windows_core::PCWSTR, cresource: i32, paltokens: *const i32) -> ::windows_core::Result<i32>;
fn RequestResource(&self, idresource: i32, pfocusobject: ::core::option::Option<&::windows_core::IUnknown>, pconsumer: ::core::option::Option<&IResourceConsumer>) -> ::windows_core::Result<()>;
fn NotifyAcquire(&self, idresource: i32, pconsumer: ::core::option::Option<&IResourceConsumer>, hr: ::windows_core::HRESULT) -> ::windows_core::Result<()>;
fn NotifyRelease(&self, idresource: i32, pconsumer: ::core::option::Option<&IResourceConsumer>, bstillwant: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CancelRequest(&self, idresource: i32, pconsumer: ::core::option::Option<&IResourceConsumer>) -> ::windows_core::Result<()>;
fn SetFocus(&self, pfocusobject: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn ReleaseFocus(&self, pfocusobject: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IResourceManager {}
#[cfg(feature = "Win32_Foundation")]
impl IResourceManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>() -> IResourceManager_Vtbl {
unsafe extern "system" fn Register<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pname: ::windows_core::PCWSTR, cresource: i32, pltoken: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Register(::core::mem::transmute(&pname), ::core::mem::transmute_copy(&cresource)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pltoken, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RegisterGroup<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pname: ::windows_core::PCWSTR, cresource: i32, paltokens: *const i32, pltoken: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.RegisterGroup(::core::mem::transmute(&pname), ::core::mem::transmute_copy(&cresource), ::core::mem::transmute_copy(&paltokens)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pltoken, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn RequestResource<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32, pfocusobject: *mut ::core::ffi::c_void, pconsumer: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RequestResource(::core::mem::transmute_copy(&idresource), ::windows_core::from_raw_borrowed(&pfocusobject), ::windows_core::from_raw_borrowed(&pconsumer)).into()
}
unsafe extern "system" fn NotifyAcquire<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32, pconsumer: *mut ::core::ffi::c_void, hr: ::windows_core::HRESULT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyAcquire(::core::mem::transmute_copy(&idresource), ::windows_core::from_raw_borrowed(&pconsumer), ::core::mem::transmute_copy(&hr)).into()
}
unsafe extern "system" fn NotifyRelease<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32, pconsumer: *mut ::core::ffi::c_void, bstillwant: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyRelease(::core::mem::transmute_copy(&idresource), ::windows_core::from_raw_borrowed(&pconsumer), ::core::mem::transmute_copy(&bstillwant)).into()
}
unsafe extern "system" fn CancelRequest<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, idresource: i32, pconsumer: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CancelRequest(::core::mem::transmute_copy(&idresource), ::windows_core::from_raw_borrowed(&pconsumer)).into()
}
unsafe extern "system" fn SetFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfocusobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFocus(::windows_core::from_raw_borrowed(&pfocusobject)).into()
}
unsafe extern "system" fn ReleaseFocus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IResourceManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pfocusobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ReleaseFocus(::windows_core::from_raw_borrowed(&pfocusobject)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Register: Register::<Identity, Impl, OFFSET>,
RegisterGroup: RegisterGroup::<Identity, Impl, OFFSET>,
RequestResource: RequestResource::<Identity, Impl, OFFSET>,
NotifyAcquire: NotifyAcquire::<Identity, Impl, OFFSET>,
NotifyRelease: NotifyRelease::<Identity, Impl, OFFSET>,
CancelRequest: CancelRequest::<Identity, Impl, OFFSET>,
SetFocus: SetFocus::<Identity, Impl, OFFSET>,
ReleaseFocus: ReleaseFocus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IResourceManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait ISeekingPassThru_Impl: Sized {
fn Init(&self, bsupportrendering: super::super::Foundation::BOOL, ppin: ::core::option::Option<&IPin>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for ISeekingPassThru {}
#[cfg(feature = "Win32_Foundation")]
impl ISeekingPassThru_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISeekingPassThru_Impl, const OFFSET: isize>() -> ISeekingPassThru_Vtbl {
unsafe extern "system" fn Init<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISeekingPassThru_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bsupportrendering: super::super::Foundation::BOOL, ppin: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Init(::core::mem::transmute_copy(&bsupportrendering), ::windows_core::from_raw_borrowed(&ppin)).into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), Init: Init::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISeekingPassThru as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait ISelector_Impl: Sized {
fn NumSources(&self) -> ::windows_core::Result<u32>;
fn SourceNodeId(&self) -> ::windows_core::Result<u32>;
fn SetSourceNodeId(&self, dwpinid: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for ISelector {}
impl ISelector_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISelector_Impl, const OFFSET: isize>() -> ISelector_Vtbl {
unsafe extern "system" fn NumSources<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISelector_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumsources: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.NumSources() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwnumsources, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SourceNodeId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISelector_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwpinid: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.SourceNodeId() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwpinid, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetSourceNodeId<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISelector_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwpinid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSourceNodeId(::core::mem::transmute_copy(&dwpinid)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
NumSources: NumSources::<Identity, Impl, OFFSET>,
SourceNodeId: SourceNodeId::<Identity, Impl, OFFSET>,
SetSourceNodeId: SetSourceNodeId::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISelector as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_System_Ole\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_System_Ole")]
pub trait ISpecifyParticularPages_Impl: Sized {
fn GetPages(&self, guidwhatpages: *const ::windows_core::GUID) -> ::windows_core::Result<super::super::System::Ole::CAUUID>;
}
#[cfg(feature = "Win32_System_Ole")]
impl ::windows_core::RuntimeName for ISpecifyParticularPages {}
#[cfg(feature = "Win32_System_Ole")]
impl ISpecifyParticularPages_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISpecifyParticularPages_Impl, const OFFSET: isize>() -> ISpecifyParticularPages_Vtbl {
unsafe extern "system" fn GetPages<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: ISpecifyParticularPages_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, guidwhatpages: *const ::windows_core::GUID, ppages: *mut super::super::System::Ole::CAUUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetPages(::core::mem::transmute_copy(&guidwhatpages)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppages, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), GetPages: GetPages::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<ISpecifyParticularPages as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IStreamBuilder_Impl: Sized {
fn Render(&self, ppinout: ::core::option::Option<&IPin>, pgraph: ::core::option::Option<&IGraphBuilder>) -> ::windows_core::Result<()>;
fn Backout(&self, ppinout: ::core::option::Option<&IPin>, pgraph: ::core::option::Option<&IGraphBuilder>) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IStreamBuilder {}
impl IStreamBuilder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamBuilder_Impl, const OFFSET: isize>() -> IStreamBuilder_Vtbl {
unsafe extern "system" fn Render<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void, pgraph: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Render(::windows_core::from_raw_borrowed(&ppinout), ::windows_core::from_raw_borrowed(&pgraph)).into()
}
unsafe extern "system" fn Backout<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamBuilder_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppinout: *mut ::core::ffi::c_void, pgraph: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Backout(::windows_core::from_raw_borrowed(&ppinout), ::windows_core::from_raw_borrowed(&pgraph)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Render: Render::<Identity, Impl, OFFSET>,
Backout: Backout::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStreamBuilder as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IStreamSample_Impl: Sized {
fn GetMediaStream(&self, ppmediastream: *const ::core::option::Option<IMediaStream>) -> ::windows_core::Result<()>;
fn GetSampleTimes(&self, pstarttime: *mut i64, pendtime: *mut i64, pcurrenttime: *mut i64) -> ::windows_core::Result<()>;
fn SetSampleTimes(&self, pstarttime: *const i64, pendtime: *const i64) -> ::windows_core::Result<()>;
fn Update(&self, dwflags: u32, hevent: super::super::Foundation::HANDLE, pfnapc: super::super::Foundation::PAPCFUNC, dwapcdata: usize) -> ::windows_core::Result<()>;
fn CompletionStatus(&self, dwflags: u32, dwmilliseconds: u32) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IStreamSample {}
#[cfg(feature = "Win32_Foundation")]
impl IStreamSample_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>() -> IStreamSample_Vtbl {
unsafe extern "system" fn GetMediaStream<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppmediastream: *const *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMediaStream(::core::mem::transmute_copy(&ppmediastream)).into()
}
unsafe extern "system" fn GetSampleTimes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstarttime: *mut i64, pendtime: *mut i64, pcurrenttime: *mut i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSampleTimes(::core::mem::transmute_copy(&pstarttime), ::core::mem::transmute_copy(&pendtime), ::core::mem::transmute_copy(&pcurrenttime)).into()
}
unsafe extern "system" fn SetSampleTimes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pstarttime: *const i64, pendtime: *const i64) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSampleTimes(::core::mem::transmute_copy(&pstarttime), ::core::mem::transmute_copy(&pendtime)).into()
}
unsafe extern "system" fn Update<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, hevent: super::super::Foundation::HANDLE, pfnapc: super::super::Foundation::PAPCFUNC, dwapcdata: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Update(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&hevent), ::core::mem::transmute_copy(&pfnapc), ::core::mem::transmute_copy(&dwapcdata)).into()
}
unsafe extern "system" fn CompletionStatus<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IStreamSample_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwflags: u32, dwmilliseconds: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompletionStatus(::core::mem::transmute_copy(&dwflags), ::core::mem::transmute_copy(&dwmilliseconds)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetMediaStream: GetMediaStream::<Identity, Impl, OFFSET>,
GetSampleTimes: GetSampleTimes::<Identity, Impl, OFFSET>,
SetSampleTimes: SetSampleTimes::<Identity, Impl, OFFSET>,
Update: Update::<Identity, Impl, OFFSET>,
CompletionStatus: CompletionStatus::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IStreamSample as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRAspectRatioControl_Impl: Sized {
fn GetAspectRatioMode(&self) -> ::windows_core::Result<u32>;
fn SetAspectRatioMode(&self, dwarmode: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVMRAspectRatioControl {}
impl IVMRAspectRatioControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl_Impl, const OFFSET: isize>() -> IVMRAspectRatioControl_Vtbl {
unsafe extern "system" fn GetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwarmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAspectRatioMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwarmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwarmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAspectRatioMode(::core::mem::transmute_copy(&dwarmode)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAspectRatioMode: GetAspectRatioMode::<Identity, Impl, OFFSET>,
SetAspectRatioMode: SetAspectRatioMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRAspectRatioControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRAspectRatioControl9_Impl: Sized {
fn GetAspectRatioMode(&self) -> ::windows_core::Result<u32>;
fn SetAspectRatioMode(&self, dwarmode: u32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVMRAspectRatioControl9 {}
impl IVMRAspectRatioControl9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl9_Impl, const OFFSET: isize>() -> IVMRAspectRatioControl9_Vtbl {
unsafe extern "system" fn GetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwarmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAspectRatioMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwarmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRAspectRatioControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwarmode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAspectRatioMode(::core::mem::transmute_copy(&dwarmode)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetAspectRatioMode: GetAspectRatioMode::<Identity, Impl, OFFSET>,
SetAspectRatioMode: SetAspectRatioMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRAspectRatioControl9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVMRDeinterlaceControl_Impl: Sized {
fn GetNumberOfDeinterlaceModes(&self, lpvideodescription: *const VMRVideoDesc, lpdwnumdeinterlacemodes: *mut u32, lpdeinterlacemodes: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDeinterlaceModeCaps(&self, lpdeinterlacemode: *const ::windows_core::GUID, lpvideodescription: *const VMRVideoDesc, lpdeinterlacecaps: *mut VMRDeinterlaceCaps) -> ::windows_core::Result<()>;
fn GetDeinterlaceMode(&self, dwstreamid: u32) -> ::windows_core::Result<::windows_core::GUID>;
fn SetDeinterlaceMode(&self, dwstreamid: u32, lpdeinterlacemode: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDeinterlacePrefs(&self) -> ::windows_core::Result<u32>;
fn SetDeinterlacePrefs(&self, dwdeinterlaceprefs: u32) -> ::windows_core::Result<()>;
fn GetActualDeinterlaceMode(&self, dwstreamid: u32) -> ::windows_core::Result<::windows_core::GUID>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVMRDeinterlaceControl {}
#[cfg(feature = "Win32_Foundation")]
impl IVMRDeinterlaceControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>() -> IVMRDeinterlaceControl_Vtbl {
unsafe extern "system" fn GetNumberOfDeinterlaceModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpvideodescription: *const VMRVideoDesc, lpdwnumdeinterlacemodes: *mut u32, lpdeinterlacemodes: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberOfDeinterlaceModes(::core::mem::transmute_copy(&lpvideodescription), ::core::mem::transmute_copy(&lpdwnumdeinterlacemodes), ::core::mem::transmute_copy(&lpdeinterlacemodes)).into()
}
unsafe extern "system" fn GetDeinterlaceModeCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdeinterlacemode: *const ::windows_core::GUID, lpvideodescription: *const VMRVideoDesc, lpdeinterlacecaps: *mut VMRDeinterlaceCaps) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDeinterlaceModeCaps(::core::mem::transmute_copy(&lpdeinterlacemode), ::core::mem::transmute_copy(&lpvideodescription), ::core::mem::transmute_copy(&lpdeinterlacecaps)).into()
}
unsafe extern "system" fn GetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdeinterlacemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&lpdeinterlacemode)).into()
}
unsafe extern "system" fn GetDeinterlacePrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwdeinterlaceprefs: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDeinterlacePrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwdeinterlaceprefs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDeinterlacePrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwdeinterlaceprefs: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDeinterlacePrefs(::core::mem::transmute_copy(&dwdeinterlaceprefs)).into()
}
unsafe extern "system" fn GetActualDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdeinterlacemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberOfDeinterlaceModes: GetNumberOfDeinterlaceModes::<Identity, Impl, OFFSET>,
GetDeinterlaceModeCaps: GetDeinterlaceModeCaps::<Identity, Impl, OFFSET>,
GetDeinterlaceMode: GetDeinterlaceMode::<Identity, Impl, OFFSET>,
SetDeinterlaceMode: SetDeinterlaceMode::<Identity, Impl, OFFSET>,
GetDeinterlacePrefs: GetDeinterlacePrefs::<Identity, Impl, OFFSET>,
SetDeinterlacePrefs: SetDeinterlacePrefs::<Identity, Impl, OFFSET>,
GetActualDeinterlaceMode: GetActualDeinterlaceMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRDeinterlaceControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRDeinterlaceControl9_Impl: Sized {
fn GetNumberOfDeinterlaceModes(&self, lpvideodescription: *const VMR9VideoDesc, lpdwnumdeinterlacemodes: *mut u32, lpdeinterlacemodes: *mut ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDeinterlaceModeCaps(&self, lpdeinterlacemode: *const ::windows_core::GUID, lpvideodescription: *const VMR9VideoDesc, lpdeinterlacecaps: *mut VMR9DeinterlaceCaps) -> ::windows_core::Result<()>;
fn GetDeinterlaceMode(&self, dwstreamid: u32) -> ::windows_core::Result<::windows_core::GUID>;
fn SetDeinterlaceMode(&self, dwstreamid: u32, lpdeinterlacemode: *const ::windows_core::GUID) -> ::windows_core::Result<()>;
fn GetDeinterlacePrefs(&self) -> ::windows_core::Result<u32>;
fn SetDeinterlacePrefs(&self, dwdeinterlaceprefs: u32) -> ::windows_core::Result<()>;
fn GetActualDeinterlaceMode(&self, dwstreamid: u32) -> ::windows_core::Result<::windows_core::GUID>;
}
impl ::windows_core::RuntimeName for IVMRDeinterlaceControl9 {}
impl IVMRDeinterlaceControl9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>() -> IVMRDeinterlaceControl9_Vtbl {
unsafe extern "system" fn GetNumberOfDeinterlaceModes<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpvideodescription: *const VMR9VideoDesc, lpdwnumdeinterlacemodes: *mut u32, lpdeinterlacemodes: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNumberOfDeinterlaceModes(::core::mem::transmute_copy(&lpvideodescription), ::core::mem::transmute_copy(&lpdwnumdeinterlacemodes), ::core::mem::transmute_copy(&lpdeinterlacemodes)).into()
}
unsafe extern "system" fn GetDeinterlaceModeCaps<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdeinterlacemode: *const ::windows_core::GUID, lpvideodescription: *const VMR9VideoDesc, lpdeinterlacecaps: *mut VMR9DeinterlaceCaps) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDeinterlaceModeCaps(::core::mem::transmute_copy(&lpdeinterlacemode), ::core::mem::transmute_copy(&lpvideodescription), ::core::mem::transmute_copy(&lpdeinterlacecaps)).into()
}
unsafe extern "system" fn GetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdeinterlacemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *const ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&lpdeinterlacemode)).into()
}
unsafe extern "system" fn GetDeinterlacePrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdwdeinterlaceprefs: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDeinterlacePrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdwdeinterlaceprefs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDeinterlacePrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwdeinterlaceprefs: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDeinterlacePrefs(::core::mem::transmute_copy(&dwdeinterlaceprefs)).into()
}
unsafe extern "system" fn GetActualDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRDeinterlaceControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpdeinterlacemode: *mut ::windows_core::GUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetActualDeinterlaceMode(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdeinterlacemode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNumberOfDeinterlaceModes: GetNumberOfDeinterlaceModes::<Identity, Impl, OFFSET>,
GetDeinterlaceModeCaps: GetDeinterlaceModeCaps::<Identity, Impl, OFFSET>,
GetDeinterlaceMode: GetDeinterlaceMode::<Identity, Impl, OFFSET>,
SetDeinterlaceMode: SetDeinterlaceMode::<Identity, Impl, OFFSET>,
GetDeinterlacePrefs: GetDeinterlacePrefs::<Identity, Impl, OFFSET>,
SetDeinterlacePrefs: SetDeinterlacePrefs::<Identity, Impl, OFFSET>,
GetActualDeinterlaceMode: GetActualDeinterlaceMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRDeinterlaceControl9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRFilterConfig_Impl: Sized {
fn SetImageCompositor(&self, lpvmrimgcompositor: ::core::option::Option<&IVMRImageCompositor>) -> ::windows_core::Result<()>;
fn SetNumberOfStreams(&self, dwmaxstreams: u32) -> ::windows_core::Result<()>;
fn GetNumberOfStreams(&self) -> ::windows_core::Result<u32>;
fn SetRenderingPrefs(&self, dwrenderflags: u32) -> ::windows_core::Result<()>;
fn GetRenderingPrefs(&self) -> ::windows_core::Result<u32>;
fn SetRenderingMode(&self, mode: u32) -> ::windows_core::Result<()>;
fn GetRenderingMode(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IVMRFilterConfig {}
impl IVMRFilterConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>() -> IVMRFilterConfig_Vtbl {
unsafe extern "system" fn SetImageCompositor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpvmrimgcompositor: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImageCompositor(::windows_core::from_raw_borrowed(&lpvmrimgcompositor)).into()
}
unsafe extern "system" fn SetNumberOfStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmaxstreams: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNumberOfStreams(::core::mem::transmute_copy(&dwmaxstreams)).into()
}
unsafe extern "system" fn GetNumberOfStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwmaxstreams: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfStreams() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmaxstreams, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingPrefs(::core::mem::transmute_copy(&dwrenderflags)).into()
}
unsafe extern "system" fn GetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwrenderflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwrenderflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRenderingMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn GetRenderingMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetImageCompositor: SetImageCompositor::<Identity, Impl, OFFSET>,
SetNumberOfStreams: SetNumberOfStreams::<Identity, Impl, OFFSET>,
GetNumberOfStreams: GetNumberOfStreams::<Identity, Impl, OFFSET>,
SetRenderingPrefs: SetRenderingPrefs::<Identity, Impl, OFFSET>,
GetRenderingPrefs: GetRenderingPrefs::<Identity, Impl, OFFSET>,
SetRenderingMode: SetRenderingMode::<Identity, Impl, OFFSET>,
GetRenderingMode: GetRenderingMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRFilterConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRFilterConfig9_Impl: Sized {
fn SetImageCompositor(&self, lpvmrimgcompositor: ::core::option::Option<&IVMRImageCompositor9>) -> ::windows_core::Result<()>;
fn SetNumberOfStreams(&self, dwmaxstreams: u32) -> ::windows_core::Result<()>;
fn GetNumberOfStreams(&self) -> ::windows_core::Result<u32>;
fn SetRenderingPrefs(&self, dwrenderflags: u32) -> ::windows_core::Result<()>;
fn GetRenderingPrefs(&self) -> ::windows_core::Result<u32>;
fn SetRenderingMode(&self, mode: u32) -> ::windows_core::Result<()>;
fn GetRenderingMode(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IVMRFilterConfig9 {}
impl IVMRFilterConfig9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>() -> IVMRFilterConfig9_Vtbl {
unsafe extern "system" fn SetImageCompositor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpvmrimgcompositor: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetImageCompositor(::windows_core::from_raw_borrowed(&lpvmrimgcompositor)).into()
}
unsafe extern "system" fn SetNumberOfStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmaxstreams: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetNumberOfStreams(::core::mem::transmute_copy(&dwmaxstreams)).into()
}
unsafe extern "system" fn GetNumberOfStreams<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwmaxstreams: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetNumberOfStreams() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmaxstreams, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingPrefs(::core::mem::transmute_copy(&dwrenderflags)).into()
}
unsafe extern "system" fn GetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwrenderflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwrenderflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetRenderingMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn GetRenderingMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRFilterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetImageCompositor: SetImageCompositor::<Identity, Impl, OFFSET>,
SetNumberOfStreams: SetNumberOfStreams::<Identity, Impl, OFFSET>,
GetNumberOfStreams: GetNumberOfStreams::<Identity, Impl, OFFSET>,
SetRenderingPrefs: SetRenderingPrefs::<Identity, Impl, OFFSET>,
GetRenderingPrefs: GetRenderingPrefs::<Identity, Impl, OFFSET>,
SetRenderingMode: SetRenderingMode::<Identity, Impl, OFFSET>,
GetRenderingMode: GetRenderingMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRFilterConfig9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Media_MediaFoundation"))]
pub trait IVMRImageCompositor_Impl: Sized {
fn InitCompositionTarget(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>, pddsrendertarget: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface7>) -> ::windows_core::Result<()>;
fn TermCompositionTarget(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>, pddsrendertarget: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface7>) -> ::windows_core::Result<()>;
fn SetStreamMediaType(&self, dwstrmid: u32, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE, ftexture: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CompositeImage(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>, pddsrendertarget: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface7>, pmtrendertarget: *const super::MediaFoundation::AM_MEDIA_TYPE, rtstart: i64, rtend: i64, dwclrbkgnd: u32, pvideostreaminfo: *const VMRVIDEOSTREAMINFO, cstreams: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IVMRImageCompositor {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Media_MediaFoundation"))]
impl IVMRImageCompositor_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor_Impl, const OFFSET: isize>() -> IVMRImageCompositor_Vtbl {
unsafe extern "system" fn InitCompositionTarget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void, pddsrendertarget: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitCompositionTarget(::windows_core::from_raw_borrowed(&pd3ddevice), ::windows_core::from_raw_borrowed(&pddsrendertarget)).into()
}
unsafe extern "system" fn TermCompositionTarget<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void, pddsrendertarget: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TermCompositionTarget(::windows_core::from_raw_borrowed(&pd3ddevice), ::windows_core::from_raw_borrowed(&pddsrendertarget)).into()
}
unsafe extern "system" fn SetStreamMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstrmid: u32, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE, ftexture: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamMediaType(::core::mem::transmute_copy(&dwstrmid), ::core::mem::transmute_copy(&pmt), ::core::mem::transmute_copy(&ftexture)).into()
}
unsafe extern "system" fn CompositeImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void, pddsrendertarget: *mut ::core::ffi::c_void, pmtrendertarget: *const super::MediaFoundation::AM_MEDIA_TYPE, rtstart: i64, rtend: i64, dwclrbkgnd: u32, pvideostreaminfo: *const VMRVIDEOSTREAMINFO, cstreams: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompositeImage(::windows_core::from_raw_borrowed(&pd3ddevice), ::windows_core::from_raw_borrowed(&pddsrendertarget), ::core::mem::transmute_copy(&pmtrendertarget), ::core::mem::transmute_copy(&rtstart), ::core::mem::transmute_copy(&rtend), ::core::mem::transmute_copy(&dwclrbkgnd), ::core::mem::transmute_copy(&pvideostreaminfo), ::core::mem::transmute_copy(&cstreams)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitCompositionTarget: InitCompositionTarget::<Identity, Impl, OFFSET>,
TermCompositionTarget: TermCompositionTarget::<Identity, Impl, OFFSET>,
SetStreamMediaType: SetStreamMediaType::<Identity, Impl, OFFSET>,
CompositeImage: CompositeImage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImageCompositor as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Media_MediaFoundation\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Media_MediaFoundation"))]
pub trait IVMRImageCompositor9_Impl: Sized {
fn InitCompositionDevice(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn TermCompositionDevice(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn SetStreamMediaType(&self, dwstrmid: u32, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE, ftexture: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn CompositeImage(&self, pd3ddevice: ::core::option::Option<&::windows_core::IUnknown>, pddsrendertarget: ::core::option::Option<&super::super::Graphics::Direct3D9::IDirect3DSurface9>, pmtrendertarget: *const super::MediaFoundation::AM_MEDIA_TYPE, rtstart: i64, rtend: i64, dwclrbkgnd: u32, pvideostreaminfo: *const VMR9VideoStreamInfo, cstreams: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Media_MediaFoundation"))]
impl ::windows_core::RuntimeName for IVMRImageCompositor9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Media_MediaFoundation"))]
impl IVMRImageCompositor9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor9_Impl, const OFFSET: isize>() -> IVMRImageCompositor9_Vtbl {
unsafe extern "system" fn InitCompositionDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitCompositionDevice(::windows_core::from_raw_borrowed(&pd3ddevice)).into()
}
unsafe extern "system" fn TermCompositionDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TermCompositionDevice(::windows_core::from_raw_borrowed(&pd3ddevice)).into()
}
unsafe extern "system" fn SetStreamMediaType<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstrmid: u32, pmt: *const super::MediaFoundation::AM_MEDIA_TYPE, ftexture: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamMediaType(::core::mem::transmute_copy(&dwstrmid), ::core::mem::transmute_copy(&pmt), ::core::mem::transmute_copy(&ftexture)).into()
}
unsafe extern "system" fn CompositeImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImageCompositor9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pd3ddevice: *mut ::core::ffi::c_void, pddsrendertarget: *mut ::core::ffi::c_void, pmtrendertarget: *const super::MediaFoundation::AM_MEDIA_TYPE, rtstart: i64, rtend: i64, dwclrbkgnd: u32, pvideostreaminfo: *const VMR9VideoStreamInfo, cstreams: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CompositeImage(::windows_core::from_raw_borrowed(&pd3ddevice), ::windows_core::from_raw_borrowed(&pddsrendertarget), ::core::mem::transmute_copy(&pmtrendertarget), ::core::mem::transmute_copy(&rtstart), ::core::mem::transmute_copy(&rtend), ::core::mem::transmute_copy(&dwclrbkgnd), ::core::mem::transmute_copy(&pvideostreaminfo), ::core::mem::transmute_copy(&cstreams)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitCompositionDevice: InitCompositionDevice::<Identity, Impl, OFFSET>,
TermCompositionDevice: TermCompositionDevice::<Identity, Impl, OFFSET>,
SetStreamMediaType: SetStreamMediaType::<Identity, Impl, OFFSET>,
CompositeImage: CompositeImage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImageCompositor9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IVMRImagePresenter_Impl: Sized {
fn StartPresenting(&self, dwuserid: usize) -> ::windows_core::Result<()>;
fn StopPresenting(&self, dwuserid: usize) -> ::windows_core::Result<()>;
fn PresentImage(&self, dwuserid: usize, lppresinfo: *const VMRPRESENTATIONINFO) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IVMRImagePresenter {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IVMRImagePresenter_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter_Impl, const OFFSET: isize>() -> IVMRImagePresenter_Vtbl {
unsafe extern "system" fn StartPresenting<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartPresenting(::core::mem::transmute_copy(&dwuserid)).into()
}
unsafe extern "system" fn StopPresenting<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopPresenting(::core::mem::transmute_copy(&dwuserid)).into()
}
unsafe extern "system" fn PresentImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lppresinfo: *const VMRPRESENTATIONINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PresentImage(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&lppresinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartPresenting: StartPresenting::<Identity, Impl, OFFSET>,
StopPresenting: StopPresenting::<Identity, Impl, OFFSET>,
PresentImage: PresentImage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImagePresenter as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
pub trait IVMRImagePresenter9_Impl: Sized {
fn StartPresenting(&self, dwuserid: usize) -> ::windows_core::Result<()>;
fn StopPresenting(&self, dwuserid: usize) -> ::windows_core::Result<()>;
fn PresentImage(&self, dwuserid: usize, lppresinfo: *const VMR9PresentationInfo) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl ::windows_core::RuntimeName for IVMRImagePresenter9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl IVMRImagePresenter9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter9_Impl, const OFFSET: isize>() -> IVMRImagePresenter9_Vtbl {
unsafe extern "system" fn StartPresenting<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StartPresenting(::core::mem::transmute_copy(&dwuserid)).into()
}
unsafe extern "system" fn StopPresenting<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.StopPresenting(::core::mem::transmute_copy(&dwuserid)).into()
}
unsafe extern "system" fn PresentImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenter9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lppresinfo: *const VMR9PresentationInfo) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PresentImage(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&lppresinfo)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
StartPresenting: StartPresenting::<Identity, Impl, OFFSET>,
StopPresenting: StopPresenting::<Identity, Impl, OFFSET>,
PresentImage: PresentImage::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImagePresenter9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRImagePresenterConfig_Impl: Sized {
fn SetRenderingPrefs(&self, dwrenderflags: u32) -> ::windows_core::Result<()>;
fn GetRenderingPrefs(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IVMRImagePresenterConfig {}
impl IVMRImagePresenterConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig_Impl, const OFFSET: isize>() -> IVMRImagePresenterConfig_Vtbl {
unsafe extern "system" fn SetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingPrefs(::core::mem::transmute_copy(&dwrenderflags)).into()
}
unsafe extern "system" fn GetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dwrenderflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetRenderingPrefs: SetRenderingPrefs::<Identity, Impl, OFFSET>,
GetRenderingPrefs: GetRenderingPrefs::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImagePresenterConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVMRImagePresenterConfig9_Impl: Sized {
fn SetRenderingPrefs(&self, dwrenderflags: u32) -> ::windows_core::Result<()>;
fn GetRenderingPrefs(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IVMRImagePresenterConfig9 {}
impl IVMRImagePresenterConfig9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig9_Impl, const OFFSET: isize>() -> IVMRImagePresenterConfig9_Vtbl {
unsafe extern "system" fn SetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetRenderingPrefs(::core::mem::transmute_copy(&dwrenderflags)).into()
}
unsafe extern "system" fn GetRenderingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwrenderflags: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetRenderingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(dwrenderflags, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetRenderingPrefs: SetRenderingPrefs::<Identity, Impl, OFFSET>,
GetRenderingPrefs: GetRenderingPrefs::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImagePresenterConfig9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectDraw")]
pub trait IVMRImagePresenterExclModeConfig_Impl: Sized + IVMRImagePresenterConfig_Impl {
fn SetXlcModeDDObjAndPrimarySurface(&self, lpddobj: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw7>, lpprimarysurf: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface7>) -> ::windows_core::Result<()>;
fn GetXlcModeDDObjAndPrimarySurface(&self, lpddobj: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDraw7>, lpprimarysurf: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawSurface7>) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl ::windows_core::RuntimeName for IVMRImagePresenterExclModeConfig {}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl IVMRImagePresenterExclModeConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterExclModeConfig_Impl, const OFFSET: isize>() -> IVMRImagePresenterExclModeConfig_Vtbl {
unsafe extern "system" fn SetXlcModeDDObjAndPrimarySurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterExclModeConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpddobj: *mut ::core::ffi::c_void, lpprimarysurf: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetXlcModeDDObjAndPrimarySurface(::windows_core::from_raw_borrowed(&lpddobj), ::windows_core::from_raw_borrowed(&lpprimarysurf)).into()
}
unsafe extern "system" fn GetXlcModeDDObjAndPrimarySurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRImagePresenterExclModeConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpddobj: *mut *mut ::core::ffi::c_void, lpprimarysurf: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetXlcModeDDObjAndPrimarySurface(::core::mem::transmute_copy(&lpddobj), ::core::mem::transmute_copy(&lpprimarysurf)).into()
}
Self {
base__: IVMRImagePresenterConfig_Vtbl::new::<Identity, Impl, OFFSET>(),
SetXlcModeDDObjAndPrimarySurface: SetXlcModeDDObjAndPrimarySurface::<Identity, Impl, OFFSET>,
GetXlcModeDDObjAndPrimarySurface: GetXlcModeDDObjAndPrimarySurface::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRImagePresenterExclModeConfig as ::windows_core::ComInterface>::IID || iid == &<IVMRImagePresenterConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRMixerBitmap_Impl: Sized {
fn SetAlphaBitmap(&self, pbmpparms: *const VMRALPHABITMAP) -> ::windows_core::Result<()>;
fn UpdateAlphaBitmapParameters(&self, pbmpparms: *const VMRALPHABITMAP) -> ::windows_core::Result<()>;
fn GetAlphaBitmapParameters(&self, pbmpparms: *mut VMRALPHABITMAP) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRMixerBitmap {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl IVMRMixerBitmap_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap_Impl, const OFFSET: isize>() -> IVMRMixerBitmap_Vtbl {
unsafe extern "system" fn SetAlphaBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *const VMRALPHABITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAlphaBitmap(::core::mem::transmute_copy(&pbmpparms)).into()
}
unsafe extern "system" fn UpdateAlphaBitmapParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *const VMRALPHABITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateAlphaBitmapParameters(::core::mem::transmute_copy(&pbmpparms)).into()
}
unsafe extern "system" fn GetAlphaBitmapParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *mut VMRALPHABITMAP) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAlphaBitmapParameters(::core::mem::transmute_copy(&pbmpparms)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAlphaBitmap: SetAlphaBitmap::<Identity, Impl, OFFSET>,
UpdateAlphaBitmapParameters: UpdateAlphaBitmapParameters::<Identity, Impl, OFFSET>,
GetAlphaBitmapParameters: GetAlphaBitmapParameters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMixerBitmap as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRMixerBitmap9_Impl: Sized {
fn SetAlphaBitmap(&self, pbmpparms: *const VMR9AlphaBitmap) -> ::windows_core::Result<()>;
fn UpdateAlphaBitmapParameters(&self, pbmpparms: *const VMR9AlphaBitmap) -> ::windows_core::Result<()>;
fn GetAlphaBitmapParameters(&self, pbmpparms: *mut VMR9AlphaBitmap) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRMixerBitmap9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
impl IVMRMixerBitmap9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap9_Impl, const OFFSET: isize>() -> IVMRMixerBitmap9_Vtbl {
unsafe extern "system" fn SetAlphaBitmap<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *const VMR9AlphaBitmap) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAlphaBitmap(::core::mem::transmute_copy(&pbmpparms)).into()
}
unsafe extern "system" fn UpdateAlphaBitmapParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *const VMR9AlphaBitmap) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UpdateAlphaBitmapParameters(::core::mem::transmute_copy(&pbmpparms)).into()
}
unsafe extern "system" fn GetAlphaBitmapParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerBitmap9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbmpparms: *mut VMR9AlphaBitmap) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAlphaBitmapParameters(::core::mem::transmute_copy(&pbmpparms)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAlphaBitmap: SetAlphaBitmap::<Identity, Impl, OFFSET>,
UpdateAlphaBitmapParameters: UpdateAlphaBitmapParameters::<Identity, Impl, OFFSET>,
GetAlphaBitmapParameters: GetAlphaBitmapParameters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMixerBitmap9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVMRMixerControl_Impl: Sized {
fn SetAlpha(&self, dwstreamid: u32, alpha: f32) -> ::windows_core::Result<()>;
fn GetAlpha(&self, dwstreamid: u32) -> ::windows_core::Result<f32>;
fn SetZOrder(&self, dwstreamid: u32, dwz: u32) -> ::windows_core::Result<()>;
fn GetZOrder(&self, dwstreamid: u32) -> ::windows_core::Result<u32>;
fn SetOutputRect(&self, dwstreamid: u32, prect: *const NORMALIZEDRECT) -> ::windows_core::Result<()>;
fn GetOutputRect(&self, dwstreamid: u32) -> ::windows_core::Result<NORMALIZEDRECT>;
fn SetBackgroundClr(&self, clrbkg: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetBackgroundClr(&self, lpclrbkg: *const super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn SetMixingPrefs(&self, dwmixerprefs: u32) -> ::windows_core::Result<()>;
fn GetMixingPrefs(&self) -> ::windows_core::Result<u32>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVMRMixerControl {}
#[cfg(feature = "Win32_Foundation")]
impl IVMRMixerControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>() -> IVMRMixerControl_Vtbl {
unsafe extern "system" fn SetAlpha<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, alpha: f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAlpha(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&alpha)).into()
}
unsafe extern "system" fn GetAlpha<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, palpha: *mut f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAlpha(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(palpha, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, dwz: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetZOrder(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&dwz)).into()
}
unsafe extern "system" fn GetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, pz: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetZOrder(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, prect: *const NORMALIZEDRECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputRect(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&prect)).into()
}
unsafe extern "system" fn GetOutputRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, prect: *mut NORMALIZEDRECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputRect(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBackgroundClr<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clrbkg: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundClr(::core::mem::transmute_copy(&clrbkg)).into()
}
unsafe extern "system" fn GetBackgroundClr<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclrbkg: *const super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBackgroundClr(::core::mem::transmute_copy(&lpclrbkg)).into()
}
unsafe extern "system" fn SetMixingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmixerprefs: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMixingPrefs(::core::mem::transmute_copy(&dwmixerprefs)).into()
}
unsafe extern "system" fn GetMixingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwmixerprefs: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMixingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmixerprefs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAlpha: SetAlpha::<Identity, Impl, OFFSET>,
GetAlpha: GetAlpha::<Identity, Impl, OFFSET>,
SetZOrder: SetZOrder::<Identity, Impl, OFFSET>,
GetZOrder: GetZOrder::<Identity, Impl, OFFSET>,
SetOutputRect: SetOutputRect::<Identity, Impl, OFFSET>,
GetOutputRect: GetOutputRect::<Identity, Impl, OFFSET>,
SetBackgroundClr: SetBackgroundClr::<Identity, Impl, OFFSET>,
GetBackgroundClr: GetBackgroundClr::<Identity, Impl, OFFSET>,
SetMixingPrefs: SetMixingPrefs::<Identity, Impl, OFFSET>,
GetMixingPrefs: GetMixingPrefs::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMixerControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVMRMixerControl9_Impl: Sized {
fn SetAlpha(&self, dwstreamid: u32, alpha: f32) -> ::windows_core::Result<()>;
fn GetAlpha(&self, dwstreamid: u32) -> ::windows_core::Result<f32>;
fn SetZOrder(&self, dwstreamid: u32, dwz: u32) -> ::windows_core::Result<()>;
fn GetZOrder(&self, dwstreamid: u32) -> ::windows_core::Result<u32>;
fn SetOutputRect(&self, dwstreamid: u32, prect: *const VMR9NormalizedRect) -> ::windows_core::Result<()>;
fn GetOutputRect(&self, dwstreamid: u32) -> ::windows_core::Result<VMR9NormalizedRect>;
fn SetBackgroundClr(&self, clrbkg: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetBackgroundClr(&self, lpclrbkg: *const super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn SetMixingPrefs(&self, dwmixerprefs: u32) -> ::windows_core::Result<()>;
fn GetMixingPrefs(&self) -> ::windows_core::Result<u32>;
fn SetProcAmpControl(&self, dwstreamid: u32, lpclrcontrol: *const VMR9ProcAmpControl) -> ::windows_core::Result<()>;
fn GetProcAmpControl(&self, dwstreamid: u32, lpclrcontrol: *mut VMR9ProcAmpControl) -> ::windows_core::Result<()>;
fn GetProcAmpControlRange(&self, dwstreamid: u32, lpclrcontrol: *mut VMR9ProcAmpControlRange) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVMRMixerControl9 {}
#[cfg(feature = "Win32_Foundation")]
impl IVMRMixerControl9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>() -> IVMRMixerControl9_Vtbl {
unsafe extern "system" fn SetAlpha<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, alpha: f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAlpha(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&alpha)).into()
}
unsafe extern "system" fn GetAlpha<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, palpha: *mut f32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAlpha(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(palpha, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, dwz: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetZOrder(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&dwz)).into()
}
unsafe extern "system" fn GetZOrder<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, pz: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetZOrder(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pz, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOutputRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, prect: *const VMR9NormalizedRect) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOutputRect(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&prect)).into()
}
unsafe extern "system" fn GetOutputRect<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, prect: *mut VMR9NormalizedRect) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOutputRect(::core::mem::transmute_copy(&dwstreamid)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(prect, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBackgroundClr<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clrbkg: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundClr(::core::mem::transmute_copy(&clrbkg)).into()
}
unsafe extern "system" fn GetBackgroundClr<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclrbkg: *const super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetBackgroundClr(::core::mem::transmute_copy(&lpclrbkg)).into()
}
unsafe extern "system" fn SetMixingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwmixerprefs: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMixingPrefs(::core::mem::transmute_copy(&dwmixerprefs)).into()
}
unsafe extern "system" fn GetMixingPrefs<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwmixerprefs: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMixingPrefs() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwmixerprefs, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetProcAmpControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpclrcontrol: *const VMR9ProcAmpControl) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetProcAmpControl(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&lpclrcontrol)).into()
}
unsafe extern "system" fn GetProcAmpControl<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpclrcontrol: *mut VMR9ProcAmpControl) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcAmpControl(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&lpclrcontrol)).into()
}
unsafe extern "system" fn GetProcAmpControlRange<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMixerControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwstreamid: u32, lpclrcontrol: *mut VMR9ProcAmpControlRange) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetProcAmpControlRange(::core::mem::transmute_copy(&dwstreamid), ::core::mem::transmute_copy(&lpclrcontrol)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAlpha: SetAlpha::<Identity, Impl, OFFSET>,
GetAlpha: GetAlpha::<Identity, Impl, OFFSET>,
SetZOrder: SetZOrder::<Identity, Impl, OFFSET>,
GetZOrder: GetZOrder::<Identity, Impl, OFFSET>,
SetOutputRect: SetOutputRect::<Identity, Impl, OFFSET>,
GetOutputRect: GetOutputRect::<Identity, Impl, OFFSET>,
SetBackgroundClr: SetBackgroundClr::<Identity, Impl, OFFSET>,
GetBackgroundClr: GetBackgroundClr::<Identity, Impl, OFFSET>,
SetMixingPrefs: SetMixingPrefs::<Identity, Impl, OFFSET>,
GetMixingPrefs: GetMixingPrefs::<Identity, Impl, OFFSET>,
SetProcAmpControl: SetProcAmpControl::<Identity, Impl, OFFSET>,
GetProcAmpControl: GetProcAmpControl::<Identity, Impl, OFFSET>,
GetProcAmpControlRange: GetProcAmpControlRange::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMixerControl9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRMonitorConfig_Impl: Sized {
fn SetMonitor(&self, pguid: *const VMRGUID) -> ::windows_core::Result<()>;
fn GetMonitor(&self, pguid: *mut VMRGUID) -> ::windows_core::Result<()>;
fn SetDefaultMonitor(&self, pguid: *const VMRGUID) -> ::windows_core::Result<()>;
fn GetDefaultMonitor(&self, pguid: *mut VMRGUID) -> ::windows_core::Result<()>;
fn GetAvailableMonitors(&self, pinfo: *mut VMRMONITORINFO, dwmaxinfoarraysize: u32, pdwnumdevices: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRMonitorConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IVMRMonitorConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>() -> IVMRMonitorConfig_Vtbl {
unsafe extern "system" fn SetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const VMRGUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMonitor(::core::mem::transmute_copy(&pguid)).into()
}
unsafe extern "system" fn GetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *mut VMRGUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMonitor(::core::mem::transmute_copy(&pguid)).into()
}
unsafe extern "system" fn SetDefaultMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *const VMRGUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultMonitor(::core::mem::transmute_copy(&pguid)).into()
}
unsafe extern "system" fn GetDefaultMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pguid: *mut VMRGUID) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDefaultMonitor(::core::mem::transmute_copy(&pguid)).into()
}
unsafe extern "system" fn GetAvailableMonitors<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut VMRMONITORINFO, dwmaxinfoarraysize: u32, pdwnumdevices: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAvailableMonitors(::core::mem::transmute_copy(&pinfo), ::core::mem::transmute_copy(&dwmaxinfoarraysize), ::core::mem::transmute_copy(&pdwnumdevices)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetMonitor: SetMonitor::<Identity, Impl, OFFSET>,
GetMonitor: GetMonitor::<Identity, Impl, OFFSET>,
SetDefaultMonitor: SetDefaultMonitor::<Identity, Impl, OFFSET>,
GetDefaultMonitor: GetDefaultMonitor::<Identity, Impl, OFFSET>,
GetAvailableMonitors: GetAvailableMonitors::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMonitorConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRMonitorConfig9_Impl: Sized {
fn SetMonitor(&self, udev: u32) -> ::windows_core::Result<()>;
fn GetMonitor(&self) -> ::windows_core::Result<u32>;
fn SetDefaultMonitor(&self, udev: u32) -> ::windows_core::Result<()>;
fn GetDefaultMonitor(&self) -> ::windows_core::Result<u32>;
fn GetAvailableMonitors(&self, pinfo: *mut VMR9MonitorInfo, dwmaxinfoarraysize: u32, pdwnumdevices: *mut u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRMonitorConfig9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IVMRMonitorConfig9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>() -> IVMRMonitorConfig9_Vtbl {
unsafe extern "system" fn SetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, udev: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMonitor(::core::mem::transmute_copy(&udev)).into()
}
unsafe extern "system" fn GetMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pudev: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetMonitor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pudev, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDefaultMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, udev: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDefaultMonitor(::core::mem::transmute_copy(&udev)).into()
}
unsafe extern "system" fn GetDefaultMonitor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pudev: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetDefaultMonitor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pudev, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn GetAvailableMonitors<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRMonitorConfig9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pinfo: *mut VMR9MonitorInfo, dwmaxinfoarraysize: u32, pdwnumdevices: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetAvailableMonitors(::core::mem::transmute_copy(&pinfo), ::core::mem::transmute_copy(&dwmaxinfoarraysize), ::core::mem::transmute_copy(&pdwnumdevices)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetMonitor: SetMonitor::<Identity, Impl, OFFSET>,
GetMonitor: GetMonitor::<Identity, Impl, OFFSET>,
SetDefaultMonitor: SetDefaultMonitor::<Identity, Impl, OFFSET>,
GetDefaultMonitor: GetDefaultMonitor::<Identity, Impl, OFFSET>,
GetAvailableMonitors: GetAvailableMonitors::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRMonitorConfig9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_DirectDraw")]
pub trait IVMRSurface_Impl: Sized {
fn IsSurfaceLocked(&self) -> ::windows_core::Result<()>;
fn LockSurface(&self) -> ::windows_core::Result<*mut u8>;
fn UnlockSurface(&self) -> ::windows_core::Result<()>;
fn GetSurface(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::IDirectDrawSurface7>;
}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl ::windows_core::RuntimeName for IVMRSurface {}
#[cfg(feature = "Win32_Graphics_DirectDraw")]
impl IVMRSurface_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface_Impl, const OFFSET: isize>() -> IVMRSurface_Vtbl {
unsafe extern "system" fn IsSurfaceLocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsSurfaceLocked().into()
}
unsafe extern "system" fn LockSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsurface: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LockSurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpsurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UnlockSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnlockSurface().into()
}
unsafe extern "system" fn GetSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplpsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpsurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsSurfaceLocked: IsSurfaceLocked::<Identity, Impl, OFFSET>,
LockSurface: LockSurface::<Identity, Impl, OFFSET>,
UnlockSurface: UnlockSurface::<Identity, Impl, OFFSET>,
GetSurface: GetSurface::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurface as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Graphics_Direct3D9\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Graphics_Direct3D9")]
pub trait IVMRSurface9_Impl: Sized {
fn IsSurfaceLocked(&self) -> ::windows_core::Result<()>;
fn LockSurface(&self) -> ::windows_core::Result<*mut u8>;
fn UnlockSurface(&self) -> ::windows_core::Result<()>;
fn GetSurface(&self) -> ::windows_core::Result<super::super::Graphics::Direct3D9::IDirect3DSurface9>;
}
#[cfg(feature = "Win32_Graphics_Direct3D9")]
impl ::windows_core::RuntimeName for IVMRSurface9 {}
#[cfg(feature = "Win32_Graphics_Direct3D9")]
impl IVMRSurface9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface9_Impl, const OFFSET: isize>() -> IVMRSurface9_Vtbl {
unsafe extern "system" fn IsSurfaceLocked<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsSurfaceLocked().into()
}
unsafe extern "system" fn LockSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsurface: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.LockSurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpsurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn UnlockSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.UnlockSurface().into()
}
unsafe extern "system" fn GetSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurface9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lplpsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpsurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
IsSurfaceLocked: IsSurfaceLocked::<Identity, Impl, OFFSET>,
LockSurface: LockSurface::<Identity, Impl, OFFSET>,
UnlockSurface: UnlockSurface::<Identity, Impl, OFFSET>,
GetSurface: GetSurface::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurface9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRSurfaceAllocator_Impl: Sized {
fn AllocateSurface(&self, dwuserid: usize, lpallocinfo: *const VMRALLOCATIONINFO, lpdwactualbuffers: *mut u32, lplpsurface: *mut ::core::option::Option<super::super::Graphics::DirectDraw::IDirectDrawSurface7>) -> ::windows_core::Result<()>;
fn FreeSurface(&self, dwid: usize) -> ::windows_core::Result<()>;
fn PrepareSurface(&self, dwuserid: usize, lpsurface: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDrawSurface7>, dwsurfaceflags: u32) -> ::windows_core::Result<()>;
fn AdviseNotify(&self, lpivmrsurfallocnotify: ::core::option::Option<&IVMRSurfaceAllocatorNotify>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRSurfaceAllocator {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl IVMRSurfaceAllocator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator_Impl, const OFFSET: isize>() -> IVMRSurfaceAllocator_Vtbl {
unsafe extern "system" fn AllocateSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lpallocinfo: *const VMRALLOCATIONINFO, lpdwactualbuffers: *mut u32, lplpsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllocateSurface(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&lpallocinfo), ::core::mem::transmute_copy(&lpdwactualbuffers), ::core::mem::transmute_copy(&lplpsurface)).into()
}
unsafe extern "system" fn FreeSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.FreeSurface(::core::mem::transmute_copy(&dwid)).into()
}
unsafe extern "system" fn PrepareSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lpsurface: *mut ::core::ffi::c_void, dwsurfaceflags: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.PrepareSurface(::core::mem::transmute_copy(&dwuserid), ::windows_core::from_raw_borrowed(&lpsurface), ::core::mem::transmute_copy(&dwsurfaceflags)).into()
}
unsafe extern "system" fn AdviseNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpivmrsurfallocnotify: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AdviseNotify(::windows_core::from_raw_borrowed(&lpivmrsurfallocnotify)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AllocateSurface: AllocateSurface::<Identity, Impl, OFFSET>,
FreeSurface: FreeSurface::<Identity, Impl, OFFSET>,
PrepareSurface: PrepareSurface::<Identity, Impl, OFFSET>,
AdviseNotify: AdviseNotify::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurfaceAllocator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
pub trait IVMRSurfaceAllocator9_Impl: Sized {
fn InitializeDevice(&self, dwuserid: usize, lpallocinfo: *const VMR9AllocationInfo, lpnumbuffers: *mut u32) -> ::windows_core::Result<()>;
fn TerminateDevice(&self, dwid: usize) -> ::windows_core::Result<()>;
fn GetSurface(&self, dwuserid: usize, surfaceindex: u32, surfaceflags: u32) -> ::windows_core::Result<super::super::Graphics::Direct3D9::IDirect3DSurface9>;
fn AdviseNotify(&self, lpivmrsurfallocnotify: ::core::option::Option<&IVMRSurfaceAllocatorNotify9>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl ::windows_core::RuntimeName for IVMRSurfaceAllocator9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl IVMRSurfaceAllocator9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator9_Impl, const OFFSET: isize>() -> IVMRSurfaceAllocator9_Vtbl {
unsafe extern "system" fn InitializeDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lpallocinfo: *const VMR9AllocationInfo, lpnumbuffers: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InitializeDevice(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&lpallocinfo), ::core::mem::transmute_copy(&lpnumbuffers)).into()
}
unsafe extern "system" fn TerminateDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwid: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.TerminateDevice(::core::mem::transmute_copy(&dwid)).into()
}
unsafe extern "system" fn GetSurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, surfaceindex: u32, surfaceflags: u32, lplpsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetSurface(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&surfaceindex), ::core::mem::transmute_copy(&surfaceflags)) {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lplpsurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn AdviseNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocator9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpivmrsurfallocnotify: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AdviseNotify(::windows_core::from_raw_borrowed(&lpivmrsurfallocnotify)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
InitializeDevice: InitializeDevice::<Identity, Impl, OFFSET>,
TerminateDevice: TerminateDevice::<Identity, Impl, OFFSET>,
GetSurface: GetSurface::<Identity, Impl, OFFSET>,
AdviseNotify: AdviseNotify::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurfaceAllocator9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
pub trait IVMRSurfaceAllocatorEx9_Impl: Sized + IVMRSurfaceAllocator9_Impl {
fn GetSurfaceEx(&self, dwuserid: usize, surfaceindex: u32, surfaceflags: u32, lplpsurface: *mut ::core::option::Option<super::super::Graphics::Direct3D9::IDirect3DSurface9>, lprcdst: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl ::windows_core::RuntimeName for IVMRSurfaceAllocatorEx9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9"))]
impl IVMRSurfaceAllocatorEx9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorEx9_Impl, const OFFSET: isize>() -> IVMRSurfaceAllocatorEx9_Vtbl {
unsafe extern "system" fn GetSurfaceEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorEx9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, surfaceindex: u32, surfaceflags: u32, lplpsurface: *mut *mut ::core::ffi::c_void, lprcdst: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetSurfaceEx(::core::mem::transmute_copy(&dwuserid), ::core::mem::transmute_copy(&surfaceindex), ::core::mem::transmute_copy(&surfaceflags), ::core::mem::transmute_copy(&lplpsurface), ::core::mem::transmute_copy(&lprcdst)).into()
}
Self { base__: IVMRSurfaceAllocator9_Vtbl::new::<Identity, Impl, OFFSET>(), GetSurfaceEx: GetSurfaceEx::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurfaceAllocatorEx9 as ::windows_core::ComInterface>::IID || iid == &<IVMRSurfaceAllocator9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRSurfaceAllocatorNotify_Impl: Sized {
fn AdviseSurfaceAllocator(&self, dwuserid: usize, lpivrmsurfaceallocator: ::core::option::Option<&IVMRSurfaceAllocator>) -> ::windows_core::Result<()>;
fn SetDDrawDevice(&self, lpddrawdevice: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw7>, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
fn ChangeDDrawDevice(&self, lpddrawdevice: ::core::option::Option<&super::super::Graphics::DirectDraw::IDirectDraw7>, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
fn RestoreDDrawSurfaces(&self) -> ::windows_core::Result<()>;
fn NotifyEvent(&self, eventcode: i32, param1: isize, param2: isize) -> ::windows_core::Result<()>;
fn SetBorderColor(&self, clrborder: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRSurfaceAllocatorNotify {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw", feature = "Win32_Graphics_Gdi"))]
impl IVMRSurfaceAllocatorNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>() -> IVMRSurfaceAllocatorNotify_Vtbl {
unsafe extern "system" fn AdviseSurfaceAllocator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lpivrmsurfaceallocator: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AdviseSurfaceAllocator(::core::mem::transmute_copy(&dwuserid), ::windows_core::from_raw_borrowed(&lpivrmsurfaceallocator)).into()
}
unsafe extern "system" fn SetDDrawDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpddrawdevice: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDDrawDevice(::windows_core::from_raw_borrowed(&lpddrawdevice), ::core::mem::transmute_copy(&hmonitor)).into()
}
unsafe extern "system" fn ChangeDDrawDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpddrawdevice: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeDDrawDevice(::windows_core::from_raw_borrowed(&lpddrawdevice), ::core::mem::transmute_copy(&hmonitor)).into()
}
unsafe extern "system" fn RestoreDDrawSurfaces<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RestoreDDrawSurfaces().into()
}
unsafe extern "system" fn NotifyEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventcode: i32, param1: isize, param2: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyEvent(::core::mem::transmute_copy(&eventcode), ::core::mem::transmute_copy(&param1), ::core::mem::transmute_copy(&param2)).into()
}
unsafe extern "system" fn SetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clrborder: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBorderColor(::core::mem::transmute_copy(&clrborder)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AdviseSurfaceAllocator: AdviseSurfaceAllocator::<Identity, Impl, OFFSET>,
SetDDrawDevice: SetDDrawDevice::<Identity, Impl, OFFSET>,
ChangeDDrawDevice: ChangeDDrawDevice::<Identity, Impl, OFFSET>,
RestoreDDrawSurfaces: RestoreDDrawSurfaces::<Identity, Impl, OFFSET>,
NotifyEvent: NotifyEvent::<Identity, Impl, OFFSET>,
SetBorderColor: SetBorderColor::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurfaceAllocatorNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D9\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRSurfaceAllocatorNotify9_Impl: Sized {
fn AdviseSurfaceAllocator(&self, dwuserid: usize, lpivrmsurfaceallocator: ::core::option::Option<&IVMRSurfaceAllocator9>) -> ::windows_core::Result<()>;
fn SetD3DDevice(&self, lpd3ddevice: ::core::option::Option<&super::super::Graphics::Direct3D9::IDirect3DDevice9>, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
fn ChangeD3DDevice(&self, lpd3ddevice: ::core::option::Option<&super::super::Graphics::Direct3D9::IDirect3DDevice9>, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::Result<()>;
fn AllocateSurfaceHelper(&self, lpallocinfo: *const VMR9AllocationInfo, lpnumbuffers: *mut u32, lplpsurface: *mut ::core::option::Option<super::super::Graphics::Direct3D9::IDirect3DSurface9>) -> ::windows_core::Result<()>;
fn NotifyEvent(&self, eventcode: i32, param1: isize, param2: isize) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRSurfaceAllocatorNotify9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D9", feature = "Win32_Graphics_Gdi"))]
impl IVMRSurfaceAllocatorNotify9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>() -> IVMRSurfaceAllocatorNotify9_Vtbl {
unsafe extern "system" fn AdviseSurfaceAllocator<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwuserid: usize, lpivrmsurfaceallocator: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AdviseSurfaceAllocator(::core::mem::transmute_copy(&dwuserid), ::windows_core::from_raw_borrowed(&lpivrmsurfaceallocator)).into()
}
unsafe extern "system" fn SetD3DDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpd3ddevice: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetD3DDevice(::windows_core::from_raw_borrowed(&lpd3ddevice), ::core::mem::transmute_copy(&hmonitor)).into()
}
unsafe extern "system" fn ChangeD3DDevice<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpd3ddevice: *mut ::core::ffi::c_void, hmonitor: super::super::Graphics::Gdi::HMONITOR) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.ChangeD3DDevice(::windows_core::from_raw_borrowed(&lpd3ddevice), ::core::mem::transmute_copy(&hmonitor)).into()
}
unsafe extern "system" fn AllocateSurfaceHelper<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpallocinfo: *const VMR9AllocationInfo, lpnumbuffers: *mut u32, lplpsurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.AllocateSurfaceHelper(::core::mem::transmute_copy(&lpallocinfo), ::core::mem::transmute_copy(&lpnumbuffers), ::core::mem::transmute_copy(&lplpsurface)).into()
}
unsafe extern "system" fn NotifyEvent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRSurfaceAllocatorNotify9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, eventcode: i32, param1: isize, param2: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyEvent(::core::mem::transmute_copy(&eventcode), ::core::mem::transmute_copy(&param1), ::core::mem::transmute_copy(&param2)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
AdviseSurfaceAllocator: AdviseSurfaceAllocator::<Identity, Impl, OFFSET>,
SetD3DDevice: SetD3DDevice::<Identity, Impl, OFFSET>,
ChangeD3DDevice: ChangeD3DDevice::<Identity, Impl, OFFSET>,
AllocateSurfaceHelper: AllocateSurfaceHelper::<Identity, Impl, OFFSET>,
NotifyEvent: NotifyEvent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRSurfaceAllocatorNotify9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IVMRVideoStreamControl_Impl: Sized {
fn SetColorKey(&self, lpclrkey: *const super::super::Graphics::DirectDraw::DDCOLORKEY) -> ::windows_core::Result<()>;
fn GetColorKey(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::DDCOLORKEY>;
fn SetStreamActiveState(&self, factive: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetStreamActiveState(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IVMRVideoStreamControl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IVMRVideoStreamControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl_Impl, const OFFSET: isize>() -> IVMRVideoStreamControl_Vtbl {
unsafe extern "system" fn SetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclrkey: *const super::super::Graphics::DirectDraw::DDCOLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColorKey(::core::mem::transmute_copy(&lpclrkey)).into()
}
unsafe extern "system" fn GetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclrkey: *mut super::super::Graphics::DirectDraw::DDCOLORKEY) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetColorKey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpclrkey, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetStreamActiveState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factive: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamActiveState(::core::mem::transmute_copy(&factive)).into()
}
unsafe extern "system" fn GetStreamActiveState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpfactive: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStreamActiveState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpfactive, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetColorKey: SetColorKey::<Identity, Impl, OFFSET>,
GetColorKey: GetColorKey::<Identity, Impl, OFFSET>,
SetStreamActiveState: SetStreamActiveState::<Identity, Impl, OFFSET>,
GetStreamActiveState: GetStreamActiveState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRVideoStreamControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVMRVideoStreamControl9_Impl: Sized {
fn SetStreamActiveState(&self, factive: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetStreamActiveState(&self) -> ::windows_core::Result<super::super::Foundation::BOOL>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVMRVideoStreamControl9 {}
#[cfg(feature = "Win32_Foundation")]
impl IVMRVideoStreamControl9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl9_Impl, const OFFSET: isize>() -> IVMRVideoStreamControl9_Vtbl {
unsafe extern "system" fn SetStreamActiveState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, factive: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetStreamActiveState(::core::mem::transmute_copy(&factive)).into()
}
unsafe extern "system" fn GetStreamActiveState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRVideoStreamControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpfactive: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetStreamActiveState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpfactive, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetStreamActiveState: SetStreamActiveState::<Identity, Impl, OFFSET>,
GetStreamActiveState: GetStreamActiveState::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRVideoStreamControl9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRWindowlessControl_Impl: Sized {
fn GetNativeVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32, lparwidth: *mut i32, lparheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMinIdealVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMaxIdealVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::Result<()>;
fn SetVideoPosition(&self, lpsrcrect: *const super::super::Foundation::RECT, lpdstrect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn GetVideoPosition(&self, lpsrcrect: *mut super::super::Foundation::RECT, lpdstrect: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn GetAspectRatioMode(&self) -> ::windows_core::Result<u32>;
fn SetAspectRatioMode(&self, aspectratiomode: u32) -> ::windows_core::Result<()>;
fn SetVideoClippingWindow(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn RepaintVideo(&self, hwnd: super::super::Foundation::HWND, hdc: super::super::Graphics::Gdi::HDC) -> ::windows_core::Result<()>;
fn DisplayModeChanged(&self) -> ::windows_core::Result<()>;
fn GetCurrentImage(&self) -> ::windows_core::Result<*mut u8>;
fn SetBorderColor(&self, clr: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetBorderColor(&self) -> ::windows_core::Result<super::super::Foundation::COLORREF>;
fn SetColorKey(&self, clr: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetColorKey(&self) -> ::windows_core::Result<super::super::Foundation::COLORREF>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRWindowlessControl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IVMRWindowlessControl_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>() -> IVMRWindowlessControl_Vtbl {
unsafe extern "system" fn GetNativeVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32, lparwidth: *mut i32, lparheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNativeVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight), ::core::mem::transmute_copy(&lparwidth), ::core::mem::transmute_copy(&lparheight)).into()
}
unsafe extern "system" fn GetMinIdealVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMinIdealVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight)).into()
}
unsafe extern "system" fn GetMaxIdealVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMaxIdealVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight)).into()
}
unsafe extern "system" fn SetVideoPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsrcrect: *const super::super::Foundation::RECT, lpdstrect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoPosition(::core::mem::transmute_copy(&lpsrcrect), ::core::mem::transmute_copy(&lpdstrect)).into()
}
unsafe extern "system" fn GetVideoPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsrcrect: *mut super::super::Foundation::RECT, lpdstrect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoPosition(::core::mem::transmute_copy(&lpsrcrect), ::core::mem::transmute_copy(&lpdstrect)).into()
}
unsafe extern "system" fn GetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpaspectratiomode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAspectRatioMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpaspectratiomode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, aspectratiomode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAspectRatioMode(::core::mem::transmute_copy(&aspectratiomode)).into()
}
unsafe extern "system" fn SetVideoClippingWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoClippingWindow(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn RepaintVideo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, hdc: super::super::Graphics::Gdi::HDC) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RepaintVideo(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&hdc)).into()
}
unsafe extern "system" fn DisplayModeChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisplayModeChanged().into()
}
unsafe extern "system" fn GetCurrentImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdib: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentImage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdib, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clr: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBorderColor(::core::mem::transmute_copy(&clr)).into()
}
unsafe extern "system" fn GetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclr: *mut super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBorderColor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpclr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clr: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetColorKey(::core::mem::transmute_copy(&clr)).into()
}
unsafe extern "system" fn GetColorKey<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclr: *mut super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetColorKey() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpclr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNativeVideoSize: GetNativeVideoSize::<Identity, Impl, OFFSET>,
GetMinIdealVideoSize: GetMinIdealVideoSize::<Identity, Impl, OFFSET>,
GetMaxIdealVideoSize: GetMaxIdealVideoSize::<Identity, Impl, OFFSET>,
SetVideoPosition: SetVideoPosition::<Identity, Impl, OFFSET>,
GetVideoPosition: GetVideoPosition::<Identity, Impl, OFFSET>,
GetAspectRatioMode: GetAspectRatioMode::<Identity, Impl, OFFSET>,
SetAspectRatioMode: SetAspectRatioMode::<Identity, Impl, OFFSET>,
SetVideoClippingWindow: SetVideoClippingWindow::<Identity, Impl, OFFSET>,
RepaintVideo: RepaintVideo::<Identity, Impl, OFFSET>,
DisplayModeChanged: DisplayModeChanged::<Identity, Impl, OFFSET>,
GetCurrentImage: GetCurrentImage::<Identity, Impl, OFFSET>,
SetBorderColor: SetBorderColor::<Identity, Impl, OFFSET>,
GetBorderColor: GetBorderColor::<Identity, Impl, OFFSET>,
SetColorKey: SetColorKey::<Identity, Impl, OFFSET>,
GetColorKey: GetColorKey::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRWindowlessControl as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_Gdi\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
pub trait IVMRWindowlessControl9_Impl: Sized {
fn GetNativeVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32, lparwidth: *mut i32, lparheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMinIdealVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMaxIdealVideoSize(&self, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::Result<()>;
fn SetVideoPosition(&self, lpsrcrect: *const super::super::Foundation::RECT, lpdstrect: *const super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn GetVideoPosition(&self, lpsrcrect: *mut super::super::Foundation::RECT, lpdstrect: *mut super::super::Foundation::RECT) -> ::windows_core::Result<()>;
fn GetAspectRatioMode(&self) -> ::windows_core::Result<u32>;
fn SetAspectRatioMode(&self, aspectratiomode: u32) -> ::windows_core::Result<()>;
fn SetVideoClippingWindow(&self, hwnd: super::super::Foundation::HWND) -> ::windows_core::Result<()>;
fn RepaintVideo(&self, hwnd: super::super::Foundation::HWND, hdc: super::super::Graphics::Gdi::HDC) -> ::windows_core::Result<()>;
fn DisplayModeChanged(&self) -> ::windows_core::Result<()>;
fn GetCurrentImage(&self) -> ::windows_core::Result<*mut u8>;
fn SetBorderColor(&self, clr: super::super::Foundation::COLORREF) -> ::windows_core::Result<()>;
fn GetBorderColor(&self) -> ::windows_core::Result<super::super::Foundation::COLORREF>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl ::windows_core::RuntimeName for IVMRWindowlessControl9 {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Gdi"))]
impl IVMRWindowlessControl9_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>() -> IVMRWindowlessControl9_Vtbl {
unsafe extern "system" fn GetNativeVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32, lparwidth: *mut i32, lparheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetNativeVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight), ::core::mem::transmute_copy(&lparwidth), ::core::mem::transmute_copy(&lparheight)).into()
}
unsafe extern "system" fn GetMinIdealVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMinIdealVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight)).into()
}
unsafe extern "system" fn GetMaxIdealVideoSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpwidth: *mut i32, lpheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMaxIdealVideoSize(::core::mem::transmute_copy(&lpwidth), ::core::mem::transmute_copy(&lpheight)).into()
}
unsafe extern "system" fn SetVideoPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsrcrect: *const super::super::Foundation::RECT, lpdstrect: *const super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoPosition(::core::mem::transmute_copy(&lpsrcrect), ::core::mem::transmute_copy(&lpdstrect)).into()
}
unsafe extern "system" fn GetVideoPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpsrcrect: *mut super::super::Foundation::RECT, lpdstrect: *mut super::super::Foundation::RECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoPosition(::core::mem::transmute_copy(&lpsrcrect), ::core::mem::transmute_copy(&lpdstrect)).into()
}
unsafe extern "system" fn GetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpaspectratiomode: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetAspectRatioMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpaspectratiomode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAspectRatioMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, aspectratiomode: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAspectRatioMode(::core::mem::transmute_copy(&aspectratiomode)).into()
}
unsafe extern "system" fn SetVideoClippingWindow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoClippingWindow(::core::mem::transmute_copy(&hwnd)).into()
}
unsafe extern "system" fn RepaintVideo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: super::super::Foundation::HWND, hdc: super::super::Graphics::Gdi::HDC) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RepaintVideo(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&hdc)).into()
}
unsafe extern "system" fn DisplayModeChanged<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.DisplayModeChanged().into()
}
unsafe extern "system" fn GetCurrentImage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpdib: *mut *mut u8) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetCurrentImage() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpdib, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, clr: super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBorderColor(::core::mem::transmute_copy(&clr)).into()
}
unsafe extern "system" fn GetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVMRWindowlessControl9_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, lpclr: *mut super::super::Foundation::COLORREF) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetBorderColor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(lpclr, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetNativeVideoSize: GetNativeVideoSize::<Identity, Impl, OFFSET>,
GetMinIdealVideoSize: GetMinIdealVideoSize::<Identity, Impl, OFFSET>,
GetMaxIdealVideoSize: GetMaxIdealVideoSize::<Identity, Impl, OFFSET>,
SetVideoPosition: SetVideoPosition::<Identity, Impl, OFFSET>,
GetVideoPosition: GetVideoPosition::<Identity, Impl, OFFSET>,
GetAspectRatioMode: GetAspectRatioMode::<Identity, Impl, OFFSET>,
SetAspectRatioMode: SetAspectRatioMode::<Identity, Impl, OFFSET>,
SetVideoClippingWindow: SetVideoClippingWindow::<Identity, Impl, OFFSET>,
RepaintVideo: RepaintVideo::<Identity, Impl, OFFSET>,
DisplayModeChanged: DisplayModeChanged::<Identity, Impl, OFFSET>,
GetCurrentImage: GetCurrentImage::<Identity, Impl, OFFSET>,
SetBorderColor: SetBorderColor::<Identity, Impl, OFFSET>,
GetBorderColor: GetBorderColor::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVMRWindowlessControl9 as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IVPBaseConfig_Impl: Sized {
fn GetConnectInfo(&self, pdwnumconnectinfo: *mut u32, pddvpconnectinfo: *mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT) -> ::windows_core::Result<()>;
fn SetConnectInfo(&self, dwchosenentry: u32) -> ::windows_core::Result<()>;
fn GetVPDataInfo(&self, pamvpdatainfo: *mut AMVPDATAINFO) -> ::windows_core::Result<()>;
fn GetMaxPixelRate(&self, pamvpsize: *mut AMVPSIZE, pdwmaxpixelspersecond: *mut u32) -> ::windows_core::Result<()>;
fn InformVPInputFormats(&self, dwnumformats: u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::Result<()>;
fn GetVideoFormats(&self, pdwnumformats: *mut u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::Result<()>;
fn SetVideoFormat(&self, dwchosenentry: u32) -> ::windows_core::Result<()>;
fn SetInvertPolarity(&self) -> ::windows_core::Result<()>;
fn GetOverlaySurface(&self) -> ::windows_core::Result<super::super::Graphics::DirectDraw::IDirectDrawSurface>;
fn SetDirectDrawKernelHandle(&self, dwddkernelhandle: usize) -> ::windows_core::Result<()>;
fn SetVideoPortID(&self, dwvideoportid: u32) -> ::windows_core::Result<()>;
fn SetDDSurfaceKernelHandles(&self, chandles: u32, rgddkernelhandles: *mut usize) -> ::windows_core::Result<()>;
fn SetSurfaceParameters(&self, dwpitch: u32, dwxorigin: u32, dwyorigin: u32) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IVPBaseConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IVPBaseConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>() -> IVPBaseConfig_Vtbl {
unsafe extern "system" fn GetConnectInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumconnectinfo: *mut u32, pddvpconnectinfo: *mut super::super::Graphics::DirectDraw::DDVIDEOPORTCONNECT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetConnectInfo(::core::mem::transmute_copy(&pdwnumconnectinfo), ::core::mem::transmute_copy(&pddvpconnectinfo)).into()
}
unsafe extern "system" fn SetConnectInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwchosenentry: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetConnectInfo(::core::mem::transmute_copy(&dwchosenentry)).into()
}
unsafe extern "system" fn GetVPDataInfo<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pamvpdatainfo: *mut AMVPDATAINFO) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVPDataInfo(::core::mem::transmute_copy(&pamvpdatainfo)).into()
}
unsafe extern "system" fn GetMaxPixelRate<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pamvpsize: *mut AMVPSIZE, pdwmaxpixelspersecond: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMaxPixelRate(::core::mem::transmute_copy(&pamvpsize), ::core::mem::transmute_copy(&pdwmaxpixelspersecond)).into()
}
unsafe extern "system" fn InformVPInputFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwnumformats: u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.InformVPInputFormats(::core::mem::transmute_copy(&dwnumformats), ::core::mem::transmute_copy(&pddpixelformats)).into()
}
unsafe extern "system" fn GetVideoFormats<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwnumformats: *mut u32, pddpixelformats: *mut super::super::Graphics::DirectDraw::DDPIXELFORMAT) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVideoFormats(::core::mem::transmute_copy(&pdwnumformats), ::core::mem::transmute_copy(&pddpixelformats)).into()
}
unsafe extern "system" fn SetVideoFormat<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwchosenentry: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoFormat(::core::mem::transmute_copy(&dwchosenentry)).into()
}
unsafe extern "system" fn SetInvertPolarity<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetInvertPolarity().into()
}
unsafe extern "system" fn GetOverlaySurface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ppddoverlaysurface: *mut *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetOverlaySurface() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ppddoverlaysurface, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetDirectDrawKernelHandle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwddkernelhandle: usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDirectDrawKernelHandle(::core::mem::transmute_copy(&dwddkernelhandle)).into()
}
unsafe extern "system" fn SetVideoPortID<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwvideoportid: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoPortID(::core::mem::transmute_copy(&dwvideoportid)).into()
}
unsafe extern "system" fn SetDDSurfaceKernelHandles<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, chandles: u32, rgddkernelhandles: *mut usize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDDSurfaceKernelHandles(::core::mem::transmute_copy(&chandles), ::core::mem::transmute_copy(&rgddkernelhandles)).into()
}
unsafe extern "system" fn SetSurfaceParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwpitch: u32, dwxorigin: u32, dwyorigin: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetSurfaceParameters(::core::mem::transmute_copy(&dwpitch), ::core::mem::transmute_copy(&dwxorigin), ::core::mem::transmute_copy(&dwyorigin)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
GetConnectInfo: GetConnectInfo::<Identity, Impl, OFFSET>,
SetConnectInfo: SetConnectInfo::<Identity, Impl, OFFSET>,
GetVPDataInfo: GetVPDataInfo::<Identity, Impl, OFFSET>,
GetMaxPixelRate: GetMaxPixelRate::<Identity, Impl, OFFSET>,
InformVPInputFormats: InformVPInputFormats::<Identity, Impl, OFFSET>,
GetVideoFormats: GetVideoFormats::<Identity, Impl, OFFSET>,
SetVideoFormat: SetVideoFormat::<Identity, Impl, OFFSET>,
SetInvertPolarity: SetInvertPolarity::<Identity, Impl, OFFSET>,
GetOverlaySurface: GetOverlaySurface::<Identity, Impl, OFFSET>,
SetDirectDrawKernelHandle: SetDirectDrawKernelHandle::<Identity, Impl, OFFSET>,
SetVideoPortID: SetVideoPortID::<Identity, Impl, OFFSET>,
SetDDSurfaceKernelHandles: SetDDSurfaceKernelHandles::<Identity, Impl, OFFSET>,
SetSurfaceParameters: SetSurfaceParameters::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPBaseConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVPBaseNotify_Impl: Sized {
fn RenegotiateVPParameters(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVPBaseNotify {}
impl IVPBaseNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseNotify_Impl, const OFFSET: isize>() -> IVPBaseNotify_Vtbl {
unsafe extern "system" fn RenegotiateVPParameters<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPBaseNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.RenegotiateVPParameters().into()
}
Self { base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(), RenegotiateVPParameters: RenegotiateVPParameters::<Identity, Impl, OFFSET> }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPBaseNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IVPConfig_Impl: Sized + IVPBaseConfig_Impl {
fn IsVPDecimationAllowed(&self, pbisdecimationallowed: *mut i32) -> ::windows_core::Result<()>;
fn SetScalingFactors(&self, pamvpsize: *mut AMVPSIZE) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IVPConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IVPConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPConfig_Impl, const OFFSET: isize>() -> IVPConfig_Vtbl {
unsafe extern "system" fn IsVPDecimationAllowed<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbisdecimationallowed: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.IsVPDecimationAllowed(::core::mem::transmute_copy(&pbisdecimationallowed)).into()
}
unsafe extern "system" fn SetScalingFactors<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPConfig_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pamvpsize: *mut AMVPSIZE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetScalingFactors(::core::mem::transmute_copy(&pamvpsize)).into()
}
Self {
base__: IVPBaseConfig_Vtbl::new::<Identity, Impl, OFFSET>(),
IsVPDecimationAllowed: IsVPDecimationAllowed::<Identity, Impl, OFFSET>,
SetScalingFactors: SetScalingFactors::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPConfig as ::windows_core::ComInterface>::IID || iid == &<IVPBaseConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVPManager_Impl: Sized {
fn SetVideoPortIndex(&self, dwvideoportindex: u32) -> ::windows_core::Result<()>;
fn GetVideoPortIndex(&self) -> ::windows_core::Result<u32>;
}
impl ::windows_core::RuntimeName for IVPManager {}
impl IVPManager_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPManager_Impl, const OFFSET: isize>() -> IVPManager_Vtbl {
unsafe extern "system" fn SetVideoPortIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwvideoportindex: u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVideoPortIndex(::core::mem::transmute_copy(&dwvideoportindex)).into()
}
unsafe extern "system" fn GetVideoPortIndex<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPManager_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pdwvideoportindex: *mut u32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.GetVideoPortIndex() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pdwvideoportindex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetVideoPortIndex: SetVideoPortIndex::<Identity, Impl, OFFSET>,
GetVideoPortIndex: GetVideoPortIndex::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPManager as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVPNotify_Impl: Sized + IVPBaseNotify_Impl {
fn SetDeinterlaceMode(&self, mode: AMVP_MODE) -> ::windows_core::Result<()>;
fn GetDeinterlaceMode(&self, pmode: *mut AMVP_MODE) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVPNotify {}
impl IVPNotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify_Impl, const OFFSET: isize>() -> IVPNotify_Vtbl {
unsafe extern "system" fn SetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, mode: AMVP_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetDeinterlaceMode(::core::mem::transmute_copy(&mode)).into()
}
unsafe extern "system" fn GetDeinterlaceMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmode: *mut AMVP_MODE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetDeinterlaceMode(::core::mem::transmute_copy(&pmode)).into()
}
Self {
base__: IVPBaseNotify_Vtbl::new::<Identity, Impl, OFFSET>(),
SetDeinterlaceMode: SetDeinterlaceMode::<Identity, Impl, OFFSET>,
GetDeinterlaceMode: GetDeinterlaceMode::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPNotify as ::windows_core::ComInterface>::IID || iid == &<IVPBaseNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"implement\"`*"]
#[cfg(feature = "Win32_Foundation")]
pub trait IVPNotify2_Impl: Sized + IVPNotify_Impl {
fn SetVPSyncMaster(&self, bvpsyncmaster: super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
fn GetVPSyncMaster(&self, pbvpsyncmaster: *mut super::super::Foundation::BOOL) -> ::windows_core::Result<()>;
}
#[cfg(feature = "Win32_Foundation")]
impl ::windows_core::RuntimeName for IVPNotify2 {}
#[cfg(feature = "Win32_Foundation")]
impl IVPNotify2_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify2_Impl, const OFFSET: isize>() -> IVPNotify2_Vtbl {
unsafe extern "system" fn SetVPSyncMaster<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bvpsyncmaster: super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVPSyncMaster(::core::mem::transmute_copy(&bvpsyncmaster)).into()
}
unsafe extern "system" fn GetVPSyncMaster<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPNotify2_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbvpsyncmaster: *mut super::super::Foundation::BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetVPSyncMaster(::core::mem::transmute_copy(&pbvpsyncmaster)).into()
}
Self {
base__: IVPNotify_Vtbl::new::<Identity, Impl, OFFSET>(),
SetVPSyncMaster: SetVPSyncMaster::<Identity, Impl, OFFSET>,
GetVPSyncMaster: GetVPSyncMaster::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPNotify2 as ::windows_core::ComInterface>::IID || iid == &<IVPBaseNotify as ::windows_core::ComInterface>::IID || iid == &<IVPNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Graphics_DirectDraw\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
pub trait IVPVBIConfig_Impl: Sized + IVPBaseConfig_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl ::windows_core::RuntimeName for IVPVBIConfig {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_DirectDraw"))]
impl IVPVBIConfig_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPVBIConfig_Impl, const OFFSET: isize>() -> IVPVBIConfig_Vtbl {
Self { base__: IVPBaseConfig_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPVBIConfig as ::windows_core::ComInterface>::IID || iid == &<IVPBaseConfig as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVPVBINotify_Impl: Sized + IVPBaseNotify_Impl {}
impl ::windows_core::RuntimeName for IVPVBINotify {}
impl IVPVBINotify_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVPVBINotify_Impl, const OFFSET: isize>() -> IVPVBINotify_Vtbl {
Self { base__: IVPBaseNotify_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVPVBINotify as ::windows_core::ComInterface>::IID || iid == &<IVPBaseNotify as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
pub trait IVideoEncoder_Impl: Sized + IEncoderAPI_Impl {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl ::windows_core::RuntimeName for IVideoEncoder {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant"))]
impl IVideoEncoder_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoEncoder_Impl, const OFFSET: isize>() -> IVideoEncoder_Vtbl {
Self { base__: IEncoderAPI_Vtbl::new::<Identity, Impl, OFFSET>() }
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVideoEncoder as ::windows_core::ComInterface>::IID || iid == &<IEncoderAPI as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVideoFrameStep_Impl: Sized {
fn Step(&self, dwframes: u32, pstepobject: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn CanStep(&self, bmultiple: i32, pstepobject: ::core::option::Option<&::windows_core::IUnknown>) -> ::windows_core::Result<()>;
fn CancelStep(&self) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVideoFrameStep {}
impl IVideoFrameStep_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoFrameStep_Impl, const OFFSET: isize>() -> IVideoFrameStep_Vtbl {
unsafe extern "system" fn Step<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoFrameStep_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, dwframes: u32, pstepobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.Step(::core::mem::transmute_copy(&dwframes), ::windows_core::from_raw_borrowed(&pstepobject)).into()
}
unsafe extern "system" fn CanStep<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoFrameStep_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, bmultiple: i32, pstepobject: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CanStep(::core::mem::transmute_copy(&bmultiple), ::windows_core::from_raw_borrowed(&pstepobject)).into()
}
unsafe extern "system" fn CancelStep<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoFrameStep_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.CancelStep().into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
Step: Step::<Identity, Impl, OFFSET>,
CanStep: CanStep::<Identity, Impl, OFFSET>,
CancelStep: CancelStep::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVideoFrameStep as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"implement\"`*"]
pub trait IVideoProcAmp_Impl: Sized {
fn get_BacklightCompensation(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_BacklightCompensation(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_BacklightCompensation(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Brightness(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Brightness(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Brightness(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_ColorEnable(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_ColorEnable(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_ColorEnable(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Contrast(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Contrast(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Contrast(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Gamma(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Gamma(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Gamma(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Saturation(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Saturation(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Saturation(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Sharpness(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Sharpness(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Sharpness(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_WhiteBalance(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_WhiteBalance(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_WhiteBalance(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Gain(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Gain(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Gain(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_Hue(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_Hue(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_Hue(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_DigitalMultiplier(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_DigitalMultiplier(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_DigitalMultiplier(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_PowerlineFrequency(&self, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_PowerlineFrequency(&self, value: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_PowerlineFrequency(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
fn get_WhiteBalanceComponent(&self, pvalue1: *mut i32, pvalue2: *mut i32, pflags: *mut i32) -> ::windows_core::Result<()>;
fn put_WhiteBalanceComponent(&self, value1: i32, value2: i32, flags: i32) -> ::windows_core::Result<()>;
fn getRange_WhiteBalanceComponent(&self, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::Result<()>;
}
impl ::windows_core::RuntimeName for IVideoProcAmp {}
impl IVideoProcAmp_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>() -> IVideoProcAmp_Vtbl {
unsafe extern "system" fn get_BacklightCompensation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_BacklightCompensation(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_BacklightCompensation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_BacklightCompensation(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_BacklightCompensation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_BacklightCompensation(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Brightness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Brightness(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Brightness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Brightness(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Brightness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Brightness(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_ColorEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_ColorEnable(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_ColorEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_ColorEnable(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_ColorEnable<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_ColorEnable(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Contrast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Contrast(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Contrast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Contrast(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Contrast<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Contrast(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Gamma<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Gamma(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Gamma<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Gamma(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Gamma<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Gamma(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Saturation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Saturation(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Saturation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Saturation(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Saturation<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Saturation(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Sharpness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Sharpness(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Sharpness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Sharpness(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Sharpness<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Sharpness(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_WhiteBalance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_WhiteBalance(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_WhiteBalance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_WhiteBalance(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_WhiteBalance<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_WhiteBalance(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Gain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Gain(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Gain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Gain(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Gain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Gain(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_Hue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_Hue(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_Hue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_Hue(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_Hue<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_Hue(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_DigitalMultiplier<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_DigitalMultiplier(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_DigitalMultiplier<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_DigitalMultiplier(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_DigitalMultiplier<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_DigitalMultiplier(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_PowerlineFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_PowerlineFrequency(::core::mem::transmute_copy(&pvalue), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_PowerlineFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_PowerlineFrequency(::core::mem::transmute_copy(&value), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_PowerlineFrequency<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_PowerlineFrequency(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
unsafe extern "system" fn get_WhiteBalanceComponent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvalue1: *mut i32, pvalue2: *mut i32, pflags: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.get_WhiteBalanceComponent(::core::mem::transmute_copy(&pvalue1), ::core::mem::transmute_copy(&pvalue2), ::core::mem::transmute_copy(&pflags)).into()
}
unsafe extern "system" fn put_WhiteBalanceComponent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, value1: i32, value2: i32, flags: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.put_WhiteBalanceComponent(::core::mem::transmute_copy(&value1), ::core::mem::transmute_copy(&value2), ::core::mem::transmute_copy(&flags)).into()
}
unsafe extern "system" fn getRange_WhiteBalanceComponent<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoProcAmp_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmin: *mut i32, pmax: *mut i32, psteppingdelta: *mut i32, pdefault: *mut i32, pcapsflag: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.getRange_WhiteBalanceComponent(::core::mem::transmute_copy(&pmin), ::core::mem::transmute_copy(&pmax), ::core::mem::transmute_copy(&psteppingdelta), ::core::mem::transmute_copy(&pdefault), ::core::mem::transmute_copy(&pcapsflag)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
get_BacklightCompensation: get_BacklightCompensation::<Identity, Impl, OFFSET>,
put_BacklightCompensation: put_BacklightCompensation::<Identity, Impl, OFFSET>,
getRange_BacklightCompensation: getRange_BacklightCompensation::<Identity, Impl, OFFSET>,
get_Brightness: get_Brightness::<Identity, Impl, OFFSET>,
put_Brightness: put_Brightness::<Identity, Impl, OFFSET>,
getRange_Brightness: getRange_Brightness::<Identity, Impl, OFFSET>,
get_ColorEnable: get_ColorEnable::<Identity, Impl, OFFSET>,
put_ColorEnable: put_ColorEnable::<Identity, Impl, OFFSET>,
getRange_ColorEnable: getRange_ColorEnable::<Identity, Impl, OFFSET>,
get_Contrast: get_Contrast::<Identity, Impl, OFFSET>,
put_Contrast: put_Contrast::<Identity, Impl, OFFSET>,
getRange_Contrast: getRange_Contrast::<Identity, Impl, OFFSET>,
get_Gamma: get_Gamma::<Identity, Impl, OFFSET>,
put_Gamma: put_Gamma::<Identity, Impl, OFFSET>,
getRange_Gamma: getRange_Gamma::<Identity, Impl, OFFSET>,
get_Saturation: get_Saturation::<Identity, Impl, OFFSET>,
put_Saturation: put_Saturation::<Identity, Impl, OFFSET>,
getRange_Saturation: getRange_Saturation::<Identity, Impl, OFFSET>,
get_Sharpness: get_Sharpness::<Identity, Impl, OFFSET>,
put_Sharpness: put_Sharpness::<Identity, Impl, OFFSET>,
getRange_Sharpness: getRange_Sharpness::<Identity, Impl, OFFSET>,
get_WhiteBalance: get_WhiteBalance::<Identity, Impl, OFFSET>,
put_WhiteBalance: put_WhiteBalance::<Identity, Impl, OFFSET>,
getRange_WhiteBalance: getRange_WhiteBalance::<Identity, Impl, OFFSET>,
get_Gain: get_Gain::<Identity, Impl, OFFSET>,
put_Gain: put_Gain::<Identity, Impl, OFFSET>,
getRange_Gain: getRange_Gain::<Identity, Impl, OFFSET>,
get_Hue: get_Hue::<Identity, Impl, OFFSET>,
put_Hue: put_Hue::<Identity, Impl, OFFSET>,
getRange_Hue: getRange_Hue::<Identity, Impl, OFFSET>,
get_DigitalMultiplier: get_DigitalMultiplier::<Identity, Impl, OFFSET>,
put_DigitalMultiplier: put_DigitalMultiplier::<Identity, Impl, OFFSET>,
getRange_DigitalMultiplier: getRange_DigitalMultiplier::<Identity, Impl, OFFSET>,
get_PowerlineFrequency: get_PowerlineFrequency::<Identity, Impl, OFFSET>,
put_PowerlineFrequency: put_PowerlineFrequency::<Identity, Impl, OFFSET>,
getRange_PowerlineFrequency: getRange_PowerlineFrequency::<Identity, Impl, OFFSET>,
get_WhiteBalanceComponent: get_WhiteBalanceComponent::<Identity, Impl, OFFSET>,
put_WhiteBalanceComponent: put_WhiteBalanceComponent::<Identity, Impl, OFFSET>,
getRange_WhiteBalanceComponent: getRange_WhiteBalanceComponent::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVideoProcAmp as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_System_Com\"`, `\"Win32_System_Ole\"`, `\"Win32_System_Variant\"`, `\"Win32_UI_WindowsAndMessaging\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
pub trait IVideoWindow_Impl: Sized + super::super::System::Com::IDispatch_Impl {
fn SetCaption(&self, strcaption: &::windows_core::BSTR) -> ::windows_core::Result<()>;
fn Caption(&self) -> ::windows_core::Result<::windows_core::BSTR>;
fn SetWindowStyle(&self, windowstyle: i32) -> ::windows_core::Result<()>;
fn WindowStyle(&self) -> ::windows_core::Result<i32>;
fn SetWindowStyleEx(&self, windowstyleex: i32) -> ::windows_core::Result<()>;
fn WindowStyleEx(&self) -> ::windows_core::Result<i32>;
fn SetAutoShow(&self, autoshow: i32) -> ::windows_core::Result<()>;
fn AutoShow(&self) -> ::windows_core::Result<i32>;
fn SetWindowState(&self, windowstate: i32) -> ::windows_core::Result<()>;
fn WindowState(&self) -> ::windows_core::Result<super::super::UI::WindowsAndMessaging::SHOW_WINDOW_CMD>;
fn SetBackgroundPalette(&self, backgroundpalette: i32) -> ::windows_core::Result<()>;
fn BackgroundPalette(&self) -> ::windows_core::Result<i32>;
fn SetVisible(&self, visible: i32) -> ::windows_core::Result<()>;
fn Visible(&self) -> ::windows_core::Result<i32>;
fn SetLeft(&self, left: i32) -> ::windows_core::Result<()>;
fn Left(&self) -> ::windows_core::Result<i32>;
fn SetWidth(&self, width: i32) -> ::windows_core::Result<()>;
fn Width(&self) -> ::windows_core::Result<i32>;
fn SetTop(&self, top: i32) -> ::windows_core::Result<()>;
fn Top(&self) -> ::windows_core::Result<i32>;
fn SetHeight(&self, height: i32) -> ::windows_core::Result<()>;
fn Height(&self) -> ::windows_core::Result<i32>;
fn SetOwner(&self, owner: isize) -> ::windows_core::Result<()>;
fn Owner(&self) -> ::windows_core::Result<isize>;
fn SetMessageDrain(&self, drain: isize) -> ::windows_core::Result<()>;
fn MessageDrain(&self) -> ::windows_core::Result<isize>;
fn BorderColor(&self) -> ::windows_core::Result<i32>;
fn SetBorderColor(&self, color: i32) -> ::windows_core::Result<()>;
fn FullScreenMode(&self) -> ::windows_core::Result<i32>;
fn SetFullScreenMode(&self, fullscreenmode: i32) -> ::windows_core::Result<()>;
fn SetWindowForeground(&self, focus: i32) -> ::windows_core::Result<()>;
fn NotifyOwnerMessage(&self, hwnd: isize, umsg: i32, wparam: isize, lparam: isize) -> ::windows_core::Result<()>;
fn SetWindowPosition(&self, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::Result<()>;
fn GetWindowPosition(&self, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMinIdealImageSize(&self, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn GetMaxIdealImageSize(&self, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn GetRestorePosition(&self, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::Result<()>;
fn HideCursor(&self, hidecursor: OA_BOOL) -> ::windows_core::Result<()>;
fn IsCursorHidden(&self) -> ::windows_core::Result<i32>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl ::windows_core::RuntimeName for IVideoWindow {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_System_Com", feature = "Win32_System_Ole", feature = "Win32_System_Variant", feature = "Win32_UI_WindowsAndMessaging"))]
impl IVideoWindow_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>() -> IVideoWindow_Vtbl {
unsafe extern "system" fn SetCaption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strcaption: ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetCaption(::core::mem::transmute(&strcaption)).into()
}
unsafe extern "system" fn Caption<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, strcaption: *mut ::std::mem::MaybeUninit<::windows_core::BSTR>) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Caption() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(strcaption, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWindowStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstyle: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowStyle(::core::mem::transmute_copy(&windowstyle)).into()
}
unsafe extern "system" fn WindowStyle<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstyle: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WindowStyle() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(windowstyle, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWindowStyleEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstyleex: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowStyleEx(::core::mem::transmute_copy(&windowstyleex)).into()
}
unsafe extern "system" fn WindowStyleEx<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstyleex: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WindowStyleEx() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(windowstyleex, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetAutoShow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, autoshow: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAutoShow(::core::mem::transmute_copy(&autoshow)).into()
}
unsafe extern "system" fn AutoShow<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, autoshow: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.AutoShow() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(autoshow, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWindowState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstate: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowState(::core::mem::transmute_copy(&windowstate)).into()
}
unsafe extern "system" fn WindowState<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, windowstate: *mut super::super::UI::WindowsAndMessaging::SHOW_WINDOW_CMD) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.WindowState() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(windowstate, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBackgroundPalette<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, backgroundpalette: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBackgroundPalette(::core::mem::transmute_copy(&backgroundpalette)).into()
}
unsafe extern "system" fn BackgroundPalette<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pbackgroundpalette: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BackgroundPalette() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pbackgroundpalette, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetVisible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, visible: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetVisible(::core::mem::transmute_copy(&visible)).into()
}
unsafe extern "system" fn Visible<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pvisible: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Visible() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pvisible, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetLeft<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, left: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetLeft(::core::mem::transmute_copy(&left)).into()
}
unsafe extern "system" fn Left<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pleft: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Left() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pleft, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetWidth<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, width: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWidth(::core::mem::transmute_copy(&width)).into()
}
unsafe extern "system" fn Width<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwidth: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Width() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pwidth, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetTop<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, top: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetTop(::core::mem::transmute_copy(&top)).into()
}
unsafe extern "system" fn Top<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, ptop: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Top() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(ptop, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetHeight<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, height: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetHeight(::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn Height<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Height() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(pheight, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetOwner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, owner: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetOwner(::core::mem::transmute_copy(&owner)).into()
}
unsafe extern "system" fn Owner<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, owner: *mut isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.Owner() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(owner, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetMessageDrain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, drain: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetMessageDrain(::core::mem::transmute_copy(&drain)).into()
}
unsafe extern "system" fn MessageDrain<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, drain: *mut isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.MessageDrain() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(drain, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn BorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.BorderColor() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(color, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetBorderColor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, color: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetBorderColor(::core::mem::transmute_copy(&color)).into()
}
unsafe extern "system" fn FullScreenMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fullscreenmode: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.FullScreenMode() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(fullscreenmode, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
unsafe extern "system" fn SetFullScreenMode<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, fullscreenmode: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetFullScreenMode(::core::mem::transmute_copy(&fullscreenmode)).into()
}
unsafe extern "system" fn SetWindowForeground<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, focus: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowForeground(::core::mem::transmute_copy(&focus)).into()
}
unsafe extern "system" fn NotifyOwnerMessage<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hwnd: isize, umsg: i32, wparam: isize, lparam: isize) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NotifyOwnerMessage(::core::mem::transmute_copy(&hwnd), ::core::mem::transmute_copy(&umsg), ::core::mem::transmute_copy(&wparam), ::core::mem::transmute_copy(&lparam)).into()
}
unsafe extern "system" fn SetWindowPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, left: i32, top: i32, width: i32, height: i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetWindowPosition(::core::mem::transmute_copy(&left), ::core::mem::transmute_copy(&top), ::core::mem::transmute_copy(&width), ::core::mem::transmute_copy(&height)).into()
}
unsafe extern "system" fn GetWindowPosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetWindowPosition(::core::mem::transmute_copy(&pleft), ::core::mem::transmute_copy(&ptop), ::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn GetMinIdealImageSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMinIdealImageSize(::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn GetMaxIdealImageSize<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetMaxIdealImageSize(::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn GetRestorePosition<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pleft: *mut i32, ptop: *mut i32, pwidth: *mut i32, pheight: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.GetRestorePosition(::core::mem::transmute_copy(&pleft), ::core::mem::transmute_copy(&ptop), ::core::mem::transmute_copy(&pwidth), ::core::mem::transmute_copy(&pheight)).into()
}
unsafe extern "system" fn HideCursor<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, hidecursor: OA_BOOL) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.HideCursor(::core::mem::transmute_copy(&hidecursor)).into()
}
unsafe extern "system" fn IsCursorHidden<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IVideoWindow_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, cursorhidden: *mut i32) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
match this.IsCursorHidden() {
::core::result::Result::Ok(ok__) => {
::core::ptr::write(cursorhidden, ::core::mem::transmute(ok__));
::windows_core::HRESULT(0)
}
::core::result::Result::Err(err) => err.into(),
}
}
Self {
base__: super::super::System::Com::IDispatch_Vtbl::new::<Identity, Impl, OFFSET>(),
SetCaption: SetCaption::<Identity, Impl, OFFSET>,
Caption: Caption::<Identity, Impl, OFFSET>,
SetWindowStyle: SetWindowStyle::<Identity, Impl, OFFSET>,
WindowStyle: WindowStyle::<Identity, Impl, OFFSET>,
SetWindowStyleEx: SetWindowStyleEx::<Identity, Impl, OFFSET>,
WindowStyleEx: WindowStyleEx::<Identity, Impl, OFFSET>,
SetAutoShow: SetAutoShow::<Identity, Impl, OFFSET>,
AutoShow: AutoShow::<Identity, Impl, OFFSET>,
SetWindowState: SetWindowState::<Identity, Impl, OFFSET>,
WindowState: WindowState::<Identity, Impl, OFFSET>,
SetBackgroundPalette: SetBackgroundPalette::<Identity, Impl, OFFSET>,
BackgroundPalette: BackgroundPalette::<Identity, Impl, OFFSET>,
SetVisible: SetVisible::<Identity, Impl, OFFSET>,
Visible: Visible::<Identity, Impl, OFFSET>,
SetLeft: SetLeft::<Identity, Impl, OFFSET>,
Left: Left::<Identity, Impl, OFFSET>,
SetWidth: SetWidth::<Identity, Impl, OFFSET>,
Width: Width::<Identity, Impl, OFFSET>,
SetTop: SetTop::<Identity, Impl, OFFSET>,
Top: Top::<Identity, Impl, OFFSET>,
SetHeight: SetHeight::<Identity, Impl, OFFSET>,
Height: Height::<Identity, Impl, OFFSET>,
SetOwner: SetOwner::<Identity, Impl, OFFSET>,
Owner: Owner::<Identity, Impl, OFFSET>,
SetMessageDrain: SetMessageDrain::<Identity, Impl, OFFSET>,
MessageDrain: MessageDrain::<Identity, Impl, OFFSET>,
BorderColor: BorderColor::<Identity, Impl, OFFSET>,
SetBorderColor: SetBorderColor::<Identity, Impl, OFFSET>,
FullScreenMode: FullScreenMode::<Identity, Impl, OFFSET>,
SetFullScreenMode: SetFullScreenMode::<Identity, Impl, OFFSET>,
SetWindowForeground: SetWindowForeground::<Identity, Impl, OFFSET>,
NotifyOwnerMessage: NotifyOwnerMessage::<Identity, Impl, OFFSET>,
SetWindowPosition: SetWindowPosition::<Identity, Impl, OFFSET>,
GetWindowPosition: GetWindowPosition::<Identity, Impl, OFFSET>,
GetMinIdealImageSize: GetMinIdealImageSize::<Identity, Impl, OFFSET>,
GetMaxIdealImageSize: GetMaxIdealImageSize::<Identity, Impl, OFFSET>,
GetRestorePosition: GetRestorePosition::<Identity, Impl, OFFSET>,
HideCursor: HideCursor::<Identity, Impl, OFFSET>,
IsCursorHidden: IsCursorHidden::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IVideoWindow as ::windows_core::ComInterface>::IID || iid == &<super::super::System::Com::IDispatch as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_Media_WindowsMediaFormat\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
pub trait IWMCodecAMVideoAccelerator_Impl: Sized {
fn SetAcceleratorInterface(&self, piamva: ::core::option::Option<&IAMVideoAccelerator>) -> ::windows_core::Result<()>;
fn NegotiateConnection(&self, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn SetPlayerNotify(&self, phook: ::core::option::Option<&super::WindowsMediaFormat::IWMPlayerTimestampHook>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl ::windows_core::RuntimeName for IWMCodecAMVideoAccelerator {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl IWMCodecAMVideoAccelerator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecAMVideoAccelerator_Impl, const OFFSET: isize>() -> IWMCodecAMVideoAccelerator_Vtbl {
unsafe extern "system" fn SetAcceleratorInterface<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piamva: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetAcceleratorInterface(::windows_core::from_raw_borrowed(&piamva)).into()
}
unsafe extern "system" fn NegotiateConnection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NegotiateConnection(::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn SetPlayerNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecAMVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phook: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPlayerNotify(::windows_core::from_raw_borrowed(&phook)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
SetAcceleratorInterface: SetAcceleratorInterface::<Identity, Impl, OFFSET>,
NegotiateConnection: NegotiateConnection::<Identity, Impl, OFFSET>,
SetPlayerNotify: SetPlayerNotify::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWMCodecAMVideoAccelerator as ::windows_core::ComInterface>::IID
}
}
#[doc = "*Required features: `\"Win32_Media_DirectShow\"`, `\"Win32_Foundation\"`, `\"Win32_Media_MediaFoundation\"`, `\"Win32_Media_WindowsMediaFormat\"`, `\"implement\"`*"]
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
pub trait IWMCodecVideoAccelerator_Impl: Sized {
fn NegotiateConnection(&self, piamva: ::core::option::Option<&IAMVideoAccelerator>, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::Result<()>;
fn SetPlayerNotify(&self, phook: ::core::option::Option<&super::WindowsMediaFormat::IWMPlayerTimestampHook>) -> ::windows_core::Result<()>;
}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl ::windows_core::RuntimeName for IWMCodecVideoAccelerator {}
#[cfg(all(feature = "Win32_Foundation", feature = "Win32_Media_MediaFoundation", feature = "Win32_Media_WindowsMediaFormat"))]
impl IWMCodecVideoAccelerator_Vtbl {
pub const fn new<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecVideoAccelerator_Impl, const OFFSET: isize>() -> IWMCodecVideoAccelerator_Vtbl {
unsafe extern "system" fn NegotiateConnection<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, piamva: *mut ::core::ffi::c_void, pmediatype: *const super::MediaFoundation::AM_MEDIA_TYPE) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.NegotiateConnection(::windows_core::from_raw_borrowed(&piamva), ::core::mem::transmute_copy(&pmediatype)).into()
}
unsafe extern "system" fn SetPlayerNotify<Identity: ::windows_core::IUnknownImpl<Impl = Impl>, Impl: IWMCodecVideoAccelerator_Impl, const OFFSET: isize>(this: *mut ::core::ffi::c_void, phook: *mut ::core::ffi::c_void) -> ::windows_core::HRESULT {
let this = (this as *const *const ()).offset(OFFSET) as *const Identity;
let this = (*this).get_impl();
this.SetPlayerNotify(::windows_core::from_raw_borrowed(&phook)).into()
}
Self {
base__: ::windows_core::IUnknown_Vtbl::new::<Identity, OFFSET>(),
NegotiateConnection: NegotiateConnection::<Identity, Impl, OFFSET>,
SetPlayerNotify: SetPlayerNotify::<Identity, Impl, OFFSET>,
}
}
pub fn matches(iid: &::windows_core::GUID) -> bool {
iid == &<IWMCodecVideoAccelerator as ::windows_core::ComInterface>::IID
}
}