From c3271c92446cad259ae8364d03c88b005838b4ec Mon Sep 17 00:00:00 2001 From: Kenny Kerr Date: Tue, 18 Oct 2022 13:16:18 -0500 Subject: [PATCH 1/2] default traits --- crates/libs/bindgen/src/interfaces.rs | 12 ----- crates/libs/windows/src/core/abi.rs | 4 +- crates/tests/interface/Cargo.toml | 10 +++-- .../tests/interface/tests/non_com_existing.rs | 45 ++++++++++++++++++- 4 files changed, 52 insertions(+), 19 deletions(-) diff --git a/crates/libs/bindgen/src/interfaces.rs b/crates/libs/bindgen/src/interfaces.rs index 829ae172be..f3afda697a 100644 --- a/crates/libs/bindgen/src/interfaces.rs +++ b/crates/libs/bindgen/src/interfaces.rs @@ -51,18 +51,6 @@ fn gen_win_interface(gen: &Gen, def: TypeDef) -> TokenStream { #features #[repr(transparent)] pub struct #ident(::std::ptr::NonNull<::std::ffi::c_void>); - #features - unsafe impl ::windows::core::Abi for Option<#ident> { - type Abi = *mut ::std::ffi::c_void; - } - #features - unsafe impl ::windows::core::Abi for #ident { - type Abi = *mut ::std::ffi::c_void; - - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } - } }); } diff --git a/crates/libs/windows/src/core/abi.rs b/crates/libs/windows/src/core/abi.rs index 893977d991..ebb1086ac7 100644 --- a/crates/libs/windows/src/core/abi.rs +++ b/crates/libs/windows/src/core/abi.rs @@ -60,11 +60,11 @@ pub unsafe trait Abi: Sized { } } -unsafe impl Abi for Option { +unsafe impl Abi for Option { type Abi = *mut std::ffi::c_void; } -unsafe impl Abi for T { +unsafe impl Abi for T { type Abi = *mut std::ffi::c_void; fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { diff --git a/crates/tests/interface/Cargo.toml b/crates/tests/interface/Cargo.toml index 33264d865d..5067342ca4 100644 --- a/crates/tests/interface/Cargo.toml +++ b/crates/tests/interface/Cargo.toml @@ -7,11 +7,13 @@ edition = "2018" [dependencies.windows] path = "../../libs/windows" features = [ - "Win32_Foundation", - "Win32_System_Com", - "interface", "implement", - "Win32_Graphics_Direct3D12", + "interface", + "Win32_Foundation", "Win32_Graphics_Direct3D", "Win32_Graphics_Direct3D10", + "Win32_Graphics_Direct3D12", + "Win32_Media_Audio_XAudio2", + "Win32_System_Com", + "Win32_System_SystemInformation", ] diff --git a/crates/tests/interface/tests/non_com_existing.rs b/crates/tests/interface/tests/non_com_existing.rs index 4dc4ff5318..f241674dc4 100644 --- a/crates/tests/interface/tests/non_com_existing.rs +++ b/crates/tests/interface/tests/non_com_existing.rs @@ -1,4 +1,4 @@ -use windows::{core::*, Win32::Foundation::*, Win32::Graphics::Direct3D10::*, Win32::Graphics::Direct3D12::*}; +use windows::{core::*, Win32::Foundation::*, Win32::Graphics::Direct3D10::*, Win32::Graphics::Direct3D12::*, Win32::Media::Audio::XAudio2::*, Win32::System::Com::*, Win32::System::SystemInformation::*}; struct Reflection; @@ -104,9 +104,35 @@ impl ID3D10EffectVariable_Impl for Variable { } } +struct Callback; + +impl IXAudio2VoiceCallback_Impl for Callback { + fn OnVoiceProcessingPassStart(&self, _: u32) { + todo!() + } + fn OnVoiceProcessingPassEnd(&self) { + todo!() + } + fn OnStreamEnd(&self) {} + fn OnBufferStart(&self, _: *mut std::ffi::c_void) { + todo!() + } + fn OnBufferEnd(&self, _: *mut std::ffi::c_void) { + todo!() + } + fn OnLoopEnd(&self, _: *mut std::ffi::c_void) { + todo!() + } + fn OnVoiceError(&self, _: *mut std::ffi::c_void, _: HRESULT) { + todo!() + } +} + #[test] fn test() -> Result<()> { unsafe { + CoInitializeEx(None, COINIT_MULTITHREADED)?; + let reflection = ID3D12FunctionParameterReflection::new(&Reflection); let desc = reflection.GetDesc()?; assert_eq!("test", desc.Name.to_string().unwrap()); @@ -119,6 +145,23 @@ fn test() -> Result<()> { let interface_variable = ID3D10EffectBlendVariable::new(&variable); assert_eq!(interface_variable.IsValid(), true); + let mut audio = None; + XAudio2CreateWithVersionInfo(&mut audio, 0, XAUDIO2_DEFAULT_PROCESSOR, NTDDI_VERSION)?; + let audio = audio.unwrap(); + + // Call the callback interface directly... + let callback = IXAudio2VoiceCallback::new(&Callback); + callback.OnStreamEnd(); + + // Pass the callback to a function... + call_callback(&callback); + + // Pass the callback to another API (ignore the result)... + let mut source = None; + let _ = audio.CreateSourceVoice(&mut source, std::ptr::null(), 0, 0.0, &*callback, None, None); + Ok(()) } } + +fn call_callback(_: &IXAudio2VoiceCallback) {} From 11c20f2190ae653aa39b9fdf50096a2a97e611f9 Mon Sep 17 00:00:00 2001 From: Kenny Kerr Date: Tue, 18 Oct 2022 13:16:26 -0500 Subject: [PATCH 2/2] code gen --- .../Windows/Win32/Graphics/Direct3D/mod.rs | 9 - .../Windows/Win32/Graphics/Direct3D10/mod.rs | 180 ------------------ .../Windows/Win32/Graphics/Direct3D11/mod.rs | 45 ----- .../Windows/Win32/Graphics/Direct3D12/mod.rs | 45 ----- .../Windows/Win32/Media/Audio/XAudio2/mod.rs | 54 ------ .../src/Windows/Win32/Media/Speech/mod.rs | 9 - .../src/Windows/Win32/Storage/Vss/mod.rs | 18 -- .../Windows/Win32/System/AddressBook/mod.rs | 9 - .../src/Windows/Win32/System/Search/mod.rs | 9 - .../src/Windows/Win32/System/WinRT/mod.rs | 18 -- 10 files changed, 396 deletions(-) diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/mod.rs index 18f69d1068..2d93919d11 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D/mod.rs @@ -92,15 +92,6 @@ pub struct ID3DDestructionNotifier_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[repr(transparent)] pub struct ID3DInclude(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3DInclude { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3DInclude { pub unsafe fn Open<'a, P0>(&self, includetype: D3D_INCLUDE_TYPE, pfilename: P0, pparentdata: *const ::core::ffi::c_void, ppdata: *mut *mut ::core::ffi::c_void, pbytes: *mut u32) -> ::windows::core::Result<()> where diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs index 95b13fea01..b1902c2cb8 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D10/mod.rs @@ -2149,15 +2149,6 @@ pub struct ID3D10Effect_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectBlendVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectBlendVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectBlendVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2291,15 +2282,6 @@ pub struct ID3D10EffectBlendVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectConstantBuffer(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectConstantBuffer { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectConstantBuffer { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2443,15 +2425,6 @@ pub struct ID3D10EffectConstantBuffer_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectDepthStencilVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectDepthStencilVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectDepthStencilVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2586,15 +2559,6 @@ pub struct ID3D10EffectDepthStencilVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectDepthStencilViewVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectDepthStencilViewVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectDepthStencilViewVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2734,15 +2698,6 @@ pub struct ID3D10EffectDepthStencilViewVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectMatrixVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectMatrixVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectMatrixVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -2894,15 +2849,6 @@ pub struct ID3D10EffectMatrixVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectPass(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectPass { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectPass { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3017,15 +2963,6 @@ pub struct ID3D10EffectPool_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectRasterizerVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectRasterizerVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectRasterizerVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3160,15 +3097,6 @@ pub struct ID3D10EffectRasterizerVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectRenderTargetViewVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectRenderTargetViewVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectRenderTargetViewVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3308,15 +3236,6 @@ pub struct ID3D10EffectRenderTargetViewVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectSamplerVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectSamplerVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectSamplerVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3446,15 +3365,6 @@ pub struct ID3D10EffectSamplerVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectScalarVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectScalarVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectScalarVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3648,15 +3558,6 @@ pub struct ID3D10EffectScalarVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectShaderResourceVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectShaderResourceVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectShaderResourceVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3796,15 +3697,6 @@ pub struct ID3D10EffectShaderResourceVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectShaderVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectShaderVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectShaderVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -3969,15 +3861,6 @@ pub struct ID3D10EffectShaderVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectStringVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectStringVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectStringVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4106,15 +3989,6 @@ pub struct ID3D10EffectStringVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectTechnique(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectTechnique { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectTechnique { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4185,15 +4059,6 @@ pub struct ID3D10EffectTechnique_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectType(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectType { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectType { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4268,15 +4133,6 @@ pub struct ID3D10EffectType_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -4422,15 +4278,6 @@ pub struct ID3D10EffectVariable_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10EffectVectorVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10EffectVectorVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10EffectVectorVariable { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] @@ -5675,15 +5522,6 @@ pub struct ID3D10ShaderReflection1_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10ShaderReflectionConstantBuffer(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10ShaderReflectionConstantBuffer { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10ShaderReflectionConstantBuffer { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -5735,15 +5573,6 @@ pub struct ID3D10ShaderReflectionConstantBuffer_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10ShaderReflectionType(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10ShaderReflectionType { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10ShaderReflectionType { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -5798,15 +5627,6 @@ pub struct ID3D10ShaderReflectionType_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D10\"`*"] #[repr(transparent)] pub struct ID3D10ShaderReflectionVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D10ShaderReflectionVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D10ShaderReflectionVariable { pub unsafe fn GetDesc(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs index f6d1d8b236..88e875e565 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D11/mod.rs @@ -7089,15 +7089,6 @@ pub struct ID3D11FunctionLinkingGraph_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[repr(transparent)] pub struct ID3D11FunctionParameterReflection(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D11FunctionParameterReflection { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D11FunctionParameterReflection { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -7138,15 +7129,6 @@ pub struct ID3D11FunctionParameterReflection_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[repr(transparent)] pub struct ID3D11FunctionReflection(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D11FunctionReflection { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D11FunctionReflection { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))] @@ -8860,15 +8842,6 @@ pub struct ID3D11ShaderReflection_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[repr(transparent)] pub struct ID3D11ShaderReflectionConstantBuffer(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D11ShaderReflectionConstantBuffer { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D11ShaderReflectionConstantBuffer { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -8919,15 +8892,6 @@ pub struct ID3D11ShaderReflectionConstantBuffer_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[repr(transparent)] pub struct ID3D11ShaderReflectionType(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D11ShaderReflectionType { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D11ShaderReflectionType { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -9020,15 +8984,6 @@ pub struct ID3D11ShaderReflectionType_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D11\"`*"] #[repr(transparent)] pub struct ID3D11ShaderReflectionVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D11ShaderReflectionVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D11ShaderReflectionVariable { pub unsafe fn GetDesc(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs index 65df42c378..7842600f14 100644 --- a/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Graphics/Direct3D12/mod.rs @@ -5777,15 +5777,6 @@ pub struct ID3D12Fence1_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[repr(transparent)] pub struct ID3D12FunctionParameterReflection(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D12FunctionParameterReflection { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D12FunctionParameterReflection { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -5826,15 +5817,6 @@ pub struct ID3D12FunctionParameterReflection_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[repr(transparent)] pub struct ID3D12FunctionReflection(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D12FunctionReflection { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D12FunctionReflection { #[doc = "*Required features: `\"Win32_Foundation\"`, `\"Win32_Graphics_Direct3D\"`*"] #[cfg(all(feature = "Win32_Foundation", feature = "Win32_Graphics_Direct3D"))] @@ -10638,15 +10620,6 @@ pub struct ID3D12ShaderReflection_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[repr(transparent)] pub struct ID3D12ShaderReflectionConstantBuffer(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D12ShaderReflectionConstantBuffer { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D12ShaderReflectionConstantBuffer { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -10697,15 +10670,6 @@ pub struct ID3D12ShaderReflectionConstantBuffer_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[repr(transparent)] pub struct ID3D12ShaderReflectionType(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D12ShaderReflectionType { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D12ShaderReflectionType { #[doc = "*Required features: `\"Win32_Graphics_Direct3D\"`*"] #[cfg(feature = "Win32_Graphics_Direct3D")] @@ -10798,15 +10762,6 @@ pub struct ID3D12ShaderReflectionType_Vtbl { #[doc = "*Required features: `\"Win32_Graphics_Direct3D12\"`*"] #[repr(transparent)] pub struct ID3D12ShaderReflectionVariable(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ID3D12ShaderReflectionVariable { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ID3D12ShaderReflectionVariable { pub unsafe fn GetDesc(&self) -> ::windows::core::Result { let mut result__ = ::core::mem::MaybeUninit::zeroed(); diff --git a/crates/libs/windows/src/Windows/Win32/Media/Audio/XAudio2/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Audio/XAudio2/mod.rs index 229f231edc..2cb49673f6 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Audio/XAudio2/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Audio/XAudio2/mod.rs @@ -328,15 +328,6 @@ pub struct IXAudio2_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2EngineCallback(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2EngineCallback { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2EngineCallback { pub unsafe fn OnProcessingPassStart(&self) { (::windows::core::Vtable::vtable(self).OnProcessingPassStart)(::windows::core::Vtable::as_raw(self)) @@ -418,15 +409,6 @@ pub struct IXAudio2Extension_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2MasteringVoice(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2MasteringVoice { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2MasteringVoice { pub unsafe fn GetVoiceDetails(&self, pvoicedetails: *mut XAUDIO2_VOICE_DETAILS) { (::windows::core::Vtable::vtable(self).base__.GetVoiceDetails)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvoicedetails)) @@ -535,15 +517,6 @@ pub struct IXAudio2MasteringVoice_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2SourceVoice(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2SourceVoice { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2SourceVoice { pub unsafe fn GetVoiceDetails(&self, pvoicedetails: *mut XAUDIO2_VOICE_DETAILS) { (::windows::core::Vtable::vtable(self).base__.GetVoiceDetails)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvoicedetails)) @@ -687,15 +660,6 @@ pub struct IXAudio2SourceVoice_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2SubmixVoice(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2SubmixVoice { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2SubmixVoice { pub unsafe fn GetVoiceDetails(&self, pvoicedetails: *mut XAUDIO2_VOICE_DETAILS) { (::windows::core::Vtable::vtable(self).base__.GetVoiceDetails)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvoicedetails)) @@ -799,15 +763,6 @@ pub struct IXAudio2SubmixVoice_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2Voice(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2Voice { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2Voice { pub unsafe fn GetVoiceDetails(&self, pvoicedetails: *mut XAUDIO2_VOICE_DETAILS) { (::windows::core::Vtable::vtable(self).GetVoiceDetails)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pvoicedetails)) @@ -934,15 +889,6 @@ pub struct IXAudio2Voice_Vtbl { #[doc = "*Required features: `\"Win32_Media_Audio_XAudio2\"`*"] #[repr(transparent)] pub struct IXAudio2VoiceCallback(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IXAudio2VoiceCallback { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IXAudio2VoiceCallback { pub unsafe fn OnVoiceProcessingPassStart(&self, bytesrequired: u32) { (::windows::core::Vtable::vtable(self).OnVoiceProcessingPassStart)(::windows::core::Vtable::as_raw(self), bytesrequired) diff --git a/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs b/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs index 6e96f4c4d0..3a79af4861 100644 --- a/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Media/Speech/mod.rs @@ -1115,15 +1115,6 @@ pub struct ISpMMSysAudio_Vtbl { #[doc = "*Required features: `\"Win32_Media_Speech\"`*"] #[repr(transparent)] pub struct ISpNotifyCallback(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for ISpNotifyCallback { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl ISpNotifyCallback { #[doc = "*Required features: `\"Win32_Foundation\"`*"] #[cfg(feature = "Win32_Foundation")] diff --git a/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs b/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs index a0b0dac273..b790cabceb 100644 --- a/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/Storage/Vss/mod.rs @@ -963,15 +963,6 @@ pub struct IVssCreateExpressWriterMetadata_Vtbl { #[doc = "*Required features: `\"Win32_Storage_Vss\"`*"] #[repr(transparent)] pub struct IVssCreateWriterMetadata(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IVssCreateWriterMetadata { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IVssCreateWriterMetadata { pub unsafe fn AddIncludeFiles<'a, P0, P1, P2>(&self, wszpath: P0, wszfilespec: P1, brecursive: u8, wszalternatelocation: P2) -> ::windows::core::Result<()> where @@ -2178,15 +2169,6 @@ pub struct IVssWMFiledesc_Vtbl { #[doc = "*Required features: `\"Win32_Storage_Vss\"`*"] #[repr(transparent)] pub struct IVssWriterComponents(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IVssWriterComponents { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IVssWriterComponents { pub unsafe fn GetComponentCount(&self, pccomponents: *mut u32) -> ::windows::core::Result<()> { (::windows::core::Vtable::vtable(self).GetComponentCount)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(pccomponents)).ok() diff --git a/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs b/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs index bf87dd27fb..00b790391b 100644 --- a/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/AddressBook/mod.rs @@ -2567,15 +2567,6 @@ pub struct IWABExtInit_Vtbl { #[doc = "*Required features: `\"Win32_System_AddressBook\"`*"] #[repr(transparent)] pub struct IWABOBJECT_(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IWABOBJECT_ { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IWABOBJECT_ { pub unsafe fn QueryInterface(&self, riid: *const ::windows::core::GUID, ppvobj: *mut *mut ::core::ffi::c_void) -> ::windows::core::Result<()> { (::windows::core::Vtable::vtable(self).QueryInterface)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(riid), ::core::mem::transmute(ppvobj)).ok() diff --git a/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs b/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs index a77ce7b27e..21ed023ed4 100644 --- a/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/Search/mod.rs @@ -12593,15 +12593,6 @@ pub struct ITrusteeGroupAdmin_Vtbl { #[doc = "*Required features: `\"Win32_System_Search\"`*"] #[repr(transparent)] pub struct IUMS(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IUMS { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IUMS { pub unsafe fn SqlUmsSuspend(&self, ticks: u32) { (::windows::core::Vtable::vtable(self).SqlUmsSuspend)(::windows::core::Vtable::as_raw(self), ticks) diff --git a/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs b/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs index a61d7f9396..1f462e30ec 100644 --- a/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs +++ b/crates/libs/windows/src/Windows/Win32/System/WinRT/mod.rs @@ -1974,15 +1974,6 @@ pub struct IRestrictedErrorInfo_Vtbl { #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[repr(transparent)] pub struct IRoMetaDataLocator(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IRoMetaDataLocator { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IRoMetaDataLocator { pub unsafe fn Locate<'a, P0, P1>(&self, nameelement: P0, metadatadestination: P1) -> ::windows::core::Result<()> where @@ -2019,15 +2010,6 @@ pub struct IRoMetaDataLocator_Vtbl { #[doc = "*Required features: `\"Win32_System_WinRT\"`*"] #[repr(transparent)] pub struct IRoSimpleMetaDataBuilder(::std::ptr::NonNull<::std::ffi::c_void>); -unsafe impl ::windows::core::Abi for Option { - type Abi = *mut ::std::ffi::c_void; -} -unsafe impl ::windows::core::Abi for IRoSimpleMetaDataBuilder { - type Abi = *mut ::std::ffi::c_void; - fn abi_is_possibly_valid(abi: &Self::Abi) -> bool { - !abi.is_null() - } -} impl IRoSimpleMetaDataBuilder { pub unsafe fn SetWinRtInterface(&self, iid: ::windows::core::GUID) -> ::windows::core::Result<()> { (::windows::core::Vtable::vtable(self).SetWinRtInterface)(::windows::core::Vtable::as_raw(self), ::core::mem::transmute(iid)).ok()